pg_encoding_to_char() 是一个系统函数,用于将编码的内部标识符转换为人类可读的名称。
pg_encoding_to_char() 函数在 PostgreSQL 6.4 中被添加。
用法
pg_encoding_to_char (integer) →name
在 系统目录 关系中,对各个编码的引用以整数形式存储,这些整数定义在 C 枚举 pg_enc 中,位于 src/include/mb/pg_wchar.h (请注意,这些值在 PostgreSQL 发布版本之间不保证保持稳定)。pg_encoding_to_char() 可用于将这些整数值转换为人类可读的格式。
以下 系统目录 表包含作为整数的编码引用:
pg_collation(列collencoding)pg_conversion(列conforencoding和contoencoding)pg_database(列encoding)
在 PostgreSQL 15 之前,该函数在 PostgreSQL 文档中未被引用。
变更历史
- PostgreSQL 15
- 添加了文档 (提交 f6b5d05b)
- PostgreSQL 7.0
- 在非多字节感知数据库集群中可用(提交 5eb1d0de)
- PostgreSQL 6.4
示例
pg_encoding_to_char() 的基本用法示例
postgres=# SELECT pg_encoding_to_char(1); pg_encoding_to_char --------------------- EUC_JP (1 row)
一个更实用的示例,将 pg_database 中的 encoding 列转换为人类可读的值。
postgres=# SELECT datname, pg_encoding_to_char(encoding) AS encoding
FROM pg_database ORDER BY 1;
datname | encoding
-----------+----------
foo | EUC_JP
postgres | UTF8
template0 | UTF8
template1 | UTF8
(4 rows)
如果提供无效的编码号码,则返回一个空字符串。
postgres=# SELECT pg_encoding_to_char(-1), pg_encoding_to_char(-1) IS NULL;
pg_encoding_to_char | ?column?
---------------------+----------
| f
(1 row)
参考资料
- PostgreSQL 文档: 系统目录信息函数
