【发布时间】:2021-01-29 15:57:07
【问题描述】:
我正在使用 Sybase ASE 数据库,想知道数据库使用的字符编码(UTF8 或 ASCII 或其他)。
显示数据库使用哪种字符编码的命令是什么?
【问题讨论】:
标签: character-encoding sybase database-administration sap-ase
我正在使用 Sybase ASE 数据库,想知道数据库使用的字符编码(UTF8 或 ASCII 或其他)。
显示数据库使用哪种字符编码的命令是什么?
【问题讨论】:
标签: character-encoding sybase database-administration sap-ase
有一个查询:
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
【讨论】:
您要查找的命令实际上是一个系统存储过程:
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,并且所有索引/排序操作都使用binary 排序顺序执行。
请记住,ASE 可以根据客户端的字符集配置执行字符集转换(用于读取和写入)。尽管所述转换的成功与否取决于所讨论的字符集(例如,与utf8 连接的客户端可能会发现许多字符无法转换以存储在使用默认字符集iso_1 定义的数据服务器中)。
【讨论】: