记录生僻字编码问题

目录

    • 生僻字消失?
    • hexdump

生僻字消失?

前段时间遇到一个问题,对方系统确认推送的文件里客户姓名为3个字:倪明,中间字如下:
PS: 忽略上面的编码哈,只看汉字
记录生僻字编码问题_第1张图片
且文件为UTF8格式,本系统接收后转码为GB18030后,在服务器上cat 命令查看此行数据, 姓名如下图:中间看起来有个空格

倪   明|10|

hexdump

问题1: 对方系统的UTF8文件是否有这个生僻字
查看十六进制内容:
记录生僻字编码问题_第2张图片
倪明的UTF8编码:
记录生僻字编码问题_第3张图片
对比可以看出:中间生僻字的编码为:\xee90a1
将UTF8编码转换为unicode 编码–U+e421, 转换规则参考:
记录生僻字编码问题_第4张图片
而unicode 这个区是属于私有区:
补充知识: 主要私有区由U+E000到U+F8FF范围内的代码点组成,总共6400个私有字符。
编码结构。按照惯例,主要私有区被划分为平台编写器的公司级使用分区,从U+F8FF开始向下扩展,以及从U+E000开始向上扩展的最终用户分区。

问题2:转码后GB18030是否有这个生僻字
查看十六进制内容:
记录生僻字编码问题_第5张图片
倪明的GB18030编码:
记录生僻字编码问题_第6张图片
对比可知生僻字的GB18030 编码为\xfdb8
属于用户自定义区2 属于字库中不存在的字,所以终端没有显示
记录生僻字编码问题_第7张图片
具体的GB18030 可以下载完整文件:
国家标准全文公开系统–GB18030编码表文件

疑问:

Q1. 图片中的码值为啥与实际文件中的值不一致呢
A1: 姓名生僻字处理平台—此网站写得挺明白的,生僻字会有正式码值与PUA码两种编码形式,而公安部是使用PUA编码,而图片中的码值却属于正式码。对于我的业务场景,此客户是需要过联网核查系统,故这里使用的是PUA码值。
记录生僻字编码问题_第8张图片

参考链接:–宝藏网站
汉字字符集编码查询
姓名生僻字处理平台

你可能感兴趣的:(编码)