Skip to content

37.7.character_sets# ​

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

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

字符集

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

字符编码形式

某些字符集的编码。大多数旧字符集仅使用一种编码形式,因此没有单独的名称(例如,LATIN2 是适用于 LATIN2 集的编码形式)。但例如 Unicode 具有编码形式 UTF8、UTF16 等(并非全部受 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

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