我正在尝试将Unicode十进制代码转换为字符,并使用以下代码将其保存在oracle数据库中
uni_code= 131;
decoded_character_ := decoded_character_ || chr(uni_code using NCHAR_CS);
这对于Unicode十进制代码1到127可以正常工作,但是在此之后oracle数据库保存了一些随机字符。 (我不确定这些字符是随机的还是那些字符a有原因) 这是因为我做错了吗? 预先谢谢你
编辑: 经过进一步调查,我发现oracle无法连接小于127和大于127的Unicode字符。 例如
select chr(131) || chr(66) from dual;
此结果仅显示“ B”。
任何原因吗?
答案 0 :(得分:0)
对我来说,您不清楚要寻找什么,但是有几种可能:
SELECT
UNISTR('\00E9'),
CHR(233 USING NCHAR_CS),
CHR(50089),
UTL_I18N.RAW_TO_CHAR(HEXTORAW('C3A9'), 'AL32UTF8'),
UTL_I18N.RAW_TO_CHAR(HEXTORAW('00E9'), 'AL16UTF16'),
UTL_I18N.RAW_TO_CHAR(TO_CHAR(130, 'fmXX'), 'US8PC437'),
UTL_I18N.RAW_TO_CHAR(TO_CHAR(233, 'fmXX'), 'WE8MSWIN1252')
from dual;
请参阅https://codepoints.net/U+00E9或https://unicode-table.com/en/00E9/以获取é
的所有数字