首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将值编码为UTF 32

将值编码为UTF 32
EN

Stack Overflow用户
提问于 2017-02-07 01:41:19
回答 1查看 366关注 0票数 0

我正在试着测试我的Unicode32解码器程序,我不得不为学校的一堂课写的。我正在寻找一个解决方案,将准确地写入UTF 32字节到一个文件,这样我就可以尝试解码他们。

我一直在尝试开发一种方法来测试它,而不必编写Unicode to UTF32编码器(这意味着我也必须测试它)。我一直在使用一个我在网上找到的名为editpad (https://www.editpadlite.com/)的程序,它可以让我用utf32编码。然后我可以在上面测试我的程序。

但是,我会尝试在该程序中对终端(unicode codepoint)进行编码,然后在linux中使用U+2A580命令

代码语言:javascript
运行
复制
od -tx1 file.txt

来查看它,并将结果查看为:

代码语言:javascript
运行
复制
00 00 fe ff 00 00 d8 69 00 00 dd 80

除了BOM对我来说没什么意义。我是不是对UTF32的理解有误?还是有一个错误..我希望UTF32的值类似于02 a5 80

编辑:我的操作系统是Linux,特别是Fedora。Fedora版本24

EN

回答 1

Stack Overflow用户

发布于 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.

  • EditPad保存为UTF-32,但
  • EditPad仍错误地执行保存为UTF-16的操作,并且od输出错误地将UTF-16输入表示为UTF-32。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42073978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档