Sybase ASE:显示数据库使用的字符编码

Sybase ASE: show the character encoding used by the database

我正在处理 Sybase ASE 数据库,想知道数据库使用的字符编码(UTF8 或 ASCII 或其他)。

显示数据库使用的字符编码的命令是什么?

您要查找的命令实际上是一个系统存储过程:

1> sp_helpsort
2> go
... snip ...
Sort Order Description
 ------------------------------------------------------------------
 Character Set = 190, utf8
     Unicode 3.1 UTF-8 Character Set
     Class 2 Character Set
 Sort Order = 50, bin_utf8
     Binary sort order for the ISO 10646-1, UTF-8 multibyte encodin
     g character set (utf8).
... snip ...

从这个输出中我们看到这个特定的 ASE 数据服务器已经配置了默认字符集 utf8 和默认排序顺序 binary (bin_utf8)。这意味着所有数据都存储为 utf8 并且所有 indexing/sort 操作都使用 binary 排序顺序执行。

请记住,ASE 可以根据客户端的字符集配置执行字符集转换(用于读取和写入)。尽管所述转换的成功将取决于所讨论的字符集(例如,使用 utf8 连接的客户端可能会发现许多字符无法转换为存储在使用默认字符集 iso_1 定义的数据服务器中).

有查询:

select
cs.name as server_character_set,
cs.description as character_set_description
from
master..syscharsets cs left outer join
master..sysconfigures cfg on
    cs.id = cfg.value
where
cfg.config = 131

示例输出:

server_character_set    character_set_description
utf8    Unicode 3.1 UTF-8 Character Set