oracle 12c 生僻字 怎么处理?

客户端字符集:AMERICAN_AMERICA.AL32UTF8
生僻字:㙍   unicode 364d
按网上的办法
insert into Tmp_csy  values('吴'||utl_raw.cast_to_nvarchar2('364d')||'业 ','吴'||utl_raw.cast_to_nvarchar2('364d')||'业')
转 unicode varchar2 和nvarchar2 都ok
这种临时修复还可以但是 如果生僻字不固定 就没法了
但有没有一劳永逸的办法 ,望各位大佬帮忙

参与9

3同行回答

yulu4314yulu4314技术支持长春
字符集选择很重要,显示全部

字符集选择很重要,

收起
系统集成 · 2023-06-02
浏览640
朱向东朱向东课题专家组高级工程师某银行
在Oracle 12c数据库中处理生僻字,可以考虑以下几种解决方法:使用Unicode字符集:Oracle 12c支持Unicode字符集,其中包含了大量的生僻字。使用Unicode字符集可以保证生僻字能够正确地存储和显示。修改NLS_CHARACTERSET参数:如果使用的是非Unicode字符集,可以通过修改NLS_CHARACTE...显示全部

在Oracle 12c数据库中处理生僻字,可以考虑以下几种解决方法:

  1. 使用Unicode字符集:Oracle 12c支持Unicode字符集,其中包含了大量的生僻字。使用Unicode字符集可以保证生僻字能够正确地存储和显示。
  2. 修改NLS_CHARACTERSET参数:如果使用的是非Unicode字符集,可以通过修改NLS_CHARACTERSET参数来支持生僻字。需要注意的是,修改该参数可能会影响其他字符集相关的操作,需要谨慎处理。
  3. 使用自定义字符集:如果需要处理的生僻字较少,可以考虑使用自定义字符集。通过创建自定义字符集并将生僻字添加至其中,可以保证这些生僻字能够正确地存储和显示。
  4. 使用第三方工具:一些第三方工具可以帮助处理生僻字,例如使用Unicode转换工具或是自定义字符集转换工具。
    需要注意的是,在处理生僻字时,需要保证数据库、应用程序和操作系统等所有相关组件都支持相应的字符集。否则,可能会出现乱码或不正确的显示。
收起
银行 · 2023-04-06
浏览775
宗鬼宗鬼dba--
问题解决了  N'陈㙍莎莎'   字符串前面家上 N 就可以 了显示全部

问题解决了  N'陈㙍莎莎'   

字符串前面家上 N 就可以 了

收起
软件开发 · 2023-03-13
浏览869

ChatGPT 回答

针对生僻字的问题,可以考虑使用Unicode字符集,因为Unicode字符集包含了世界上几乎所有的字符,包括生僻字。而且,Oracle12c已经支持Unicode字符集。

对于客户端字符集,可以考虑使用UTF-8字符集,因为UTF-8是一种可变长度的Unicode编码,可以表示Unicode字符集中的所有字符。而且,UTF-8在互联网上广泛使用,也是Oracle12c默认的字符集。

如果需要在Oracle中存储生僻字,可以使用NVARCHAR2数据类型,因为NVARCHAR2可以存储Unicode字符集中的所有字符,包括生僻字。同时,可以在数据库中设置字符集为AL32UTF8,以支持UTF-8字符集。

如果需要在应用程序中处理生僻字,可以使用Java等编程语言的Unicode编码方式,将生僻字转换为Unicode编码,然后存储到数据库中。在读取数据时,可以将Unicode编码转换为字符形式,以显示生僻字。

总之,使用Unicode字符集和UTF-8字符集,以及NVARCHAR2数据类型,可以解决生僻字的存储和处理问题。

提问者

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2023-03-13
  • 关注会员:3 人
  • 问题浏览:1592
  • 最近回答:2023-06-02
  • X社区推广