生僻字“一字多码”情况

生僻字"一字多码"情况说明

1."一字多码"产生原因

“一字多码"的出现主要是因为Unicode的编码空间内存在用户自定义区(PUA),允许自定义编码来处理一些生僻字,这些生僻字后期又被Unicode正式收录,造成一个汉字既有PUA编码又有Unicode正式码的“一字多码”问题。例如“䶮”字,其在Unicode自定义区编码为"E863”,而其正式编码为"4DAE"。

"一字多码"现象虽然汉字对应的Unicode编码不一样,但是汉字的字形一致,表示为同一个汉字。

2.PUA区汉字编码范围

U+E000 至 U+F8FF

可以通过判断汉字所属的编码范围,确认该汉字是否属于PUA编码。进而通过PUA码得到该汉字的正式码。

3.如何知道字的编码

使用软件:MadEdit

在这里插入图片描述
选择编码方式为:Unicode 16大端方式,输入汉字后,通过快捷键alt+F3查看编辑框中汉字Unicode编码的十六进制表示,按alt+F1返回编辑框。

4.常见"一字两码"

汉字编码是否正式码
4DAE
E863
3447
E81B

在这里插入图片描述
防止生僻字不显示,截图查看

5.关于姓名中出现"一字多码"情况时如何比较

若待比较的姓名为:张䶮(4DAE)㑇(3447),目标姓名为:张(E863)(E81B)

则需要将待比较的姓名中"一字多码"情况进行组合,其中姓名包含3个字,第二个字和第三个字存在"一字两码"现象,故共有1*2*2=4种组合。

既:

  • 1.张䶮(4DAE)㑇(3447)
  • 2.张䶮(4DAE)(E81B)
  • 3.张(E863)㑇(3447)
  • 4.张(E863)(E81B)

若四种组合中存在任意一种组合与目标姓名一致(4.张(E863)(E81B)与目标姓名一致),则表明待比较姓名与目标姓名一致。

在这里插入图片描述
防止生僻字不显示,截图查看

6."一字三码"现象

存在两个字有"一字三码"现象,既:在PUA区中有两个该字的编码,正式码有一个该字的编码。故这三个码值都表示同一个汉字。

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在Oracle中处理生僻字有几种方法。首先,可以将需要存储生僻字的字段类型修改为nvarchar2,而不是varchar2。然后,可以通过数据库图形化工具手动将生僻字转换后插入该字段。最后,进入业务系统页面查看,生僻字应该能正常显示。\[1\] 另一种方法是将生僻字转为Unicode编码,然后使用utl_raw.cast_to_varchar2函数查询结果。这种方式可以在varchar2字段中正确存储生僻字。\[2\] 需要注意的是,在Oracle中,实际上只有nvarchar2字段才能正确存储生僻字。因此,如果需要存储多个生僻字,可以将其分解处理,并使用utl_raw.cast_to_nvarchar2函数进行插入。\[3\] #### 引用[.reference_title] - *1* [解决Oracle存储生僻字、oracle生僻字,oracle偏僻字、数据库生僻字,数据库偏僻字](https://blog.csdn.net/qq_29062045/article/details/123865076)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [oracle生僻字解决方案](https://blog.csdn.net/qq_41793064/article/details/93721735)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值