我的数据库字符集是AL32UTF8和国家字符集AL16UTF16。我需要根据db字符集在表中存储一些字符的数值,然后使用数值显示特定字符。我在理解这种编码是如何工作的时候遇到了一些问题(unistr,chr,ascii函数之间的差异等),但最终我发现website使用了以下代码:
chr(ascii(convert(unistr(hex), AL32UTF8)))
当我使用例如:
时十六进制代码小于1000时,它可以正常工作chr(ascii(convert(unistr('\1555'), AL32UTF8)))
chr(ascii(convert(unistr('\1556'), AL32UTF8)))
它返回相同的ascii值(ascii(convert(unistr('\hex >= 1000'), AL32UTF8))
)。任何人都可以看看这个并尝试解释原因是什么?我真的以为我明白它是如何运作的,但现在我有点困惑。