我正在试着测试我的Unicode32解码器程序,我不得不为学校的一堂课写的。我正在寻找一个解决方案,将准确地写入UTF 32字节到一个文件,这样我就可以尝试解码他们。
我一直在尝试开发一种方法来测试它,而不必编写Unicode to UTF32编码器(这意味着我也必须测试它)。我一直在使用一个我在网上找到的名为editpad (https://www.editpadlite.com/)的程序,它可以让我用utf32编码。然后我可以在上面测试我的程序。
但是,我会尝试在该程序中对终端(unicode codepoint)进行编码,然后在linux中使用U+2A580命令
od -tx1 file.txt来查看它,并将结果查看为:
00 00 fe ff 00 00 d8 69 00 00 dd 80除了BOM对我来说没什么意义。我是不是对UTF32的理解有误?还是有一个错误..我希望UTF32的值类似于02 a5 80
编辑:我的操作系统是Linux,特别是Fedora。Fedora版本24
发布于 2017-02-10 07:27:14
Unicode码点U+2A580在UTF-32BE中编码为以下字节序列,这是正确的:
00 02 A5 80
您实际看到的是码点首先以UTF-16编码,然后两个UTF-16代理代码单元(0xD869,0xDD80)分别以UTF-32BE编码。
发生这种情况的另一个指示是第一个字节序列:
00 00 FE FF
虽然这是UTF-32BE BOM,但它也是以UTF-32BE编码的UTF-16BE BOM。
所以,要么:
尽管您告诉double-encode.
od输出错误地将UTF-16输入表示为UTF-32。https://stackoverflow.com/questions/42073978
复制相似问题