Skip to content

37.7.character_sets#

视图character_sets标识当前数据库中可用的字符集。由于 PostgreSQL 不支持一个数据库中存在多个字符集,因此此视图只显示一个,即数据库编码。

请注意以下术语在 SQL 标准中的用法

字符集

字符的抽象集合,例如 UNICODEUCSLATIN1。未公开为 SQL 对象,但在此视图中可见。

字符编码形式

某些字符集的编码。大多数旧字符集仅使用一种编码形式,因此没有单独的名称(例如,LATIN2 是适用于 LATIN2 集的编码形式)。但例如 Unicode 具有编码形式 UTF8UTF16 等(并非全部受 PostgreSQL 支持)。编码形式未公开为 SQL 对象,但在此视图中可见。

字符集

标识字符集、字符编码和默认排序规则的命名 SQL 对象。预定义的字符集通常与编码形式同名,但用户可以定义其他名称。例如,字符集 UTF8 通常会标识字符集 UCS、编码形式 UTF8 和一些默认排序规则。

您可以在 PostgreSQL 中将“编码”视为字符集或字符编码形式。它们将具有相同的名称,并且一个数据库中只能有一个。

表 37.5.character_sets

列类型

说明

character_set_catalog sql_identifier

字符集当前未实现为模式对象,因此此列为 null。

character_set_schema sql_identifier

字符集当前未实现为模式对象,因此此列为 null。

character_set_name sql_identifier

字符集名称,当前实现为显示数据库编码的名称

character_repertoire sql_identifier

字符集,如果编码为 UTF8,则显示 UCS,否则仅显示编码名称

form_of_use sql_identifier

字符编码形式,与数据库编码相同

default_collate_catalog sql_identifier

包含默认排序规则的数据库名称(如果标识了任何排序规则,则始终为当前数据库)

default_collate_schema sql_identifier

包含默认排序规则的模式名称

default_collate_name sql_identifier

默认排序规则的名称。默认排序规则被标识为与当前数据库的 COLLATECTYPE 设置相匹配的排序规则。如果没有此类排序规则,则此列和关联的模式和目录列为 null。