首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Win-1252和Latin9中,欧元符号字符怎么能大于0 0xFF?

在Win-1252和Latin9中,欧元符号字符怎么能大于0 0xFF?
EN

Stack Overflow用户
提问于 2015-08-27 07:51:55
回答 1查看 270关注 0票数 0

Windows-1252ISO/IEC 8859-15 (拉丁语-9)代码页中,欧元符号(欧元)的值为0x20AC--这是十进制的8364!但是,如果这个编码中的任何字符都必须适合于一个没有符号的字节(即最大值可以是255),这怎么可能呢?US的值为0-127,128-255是不同字符编码之间的变化。

当我将文本输入文本编辑器(Vim)时:

代码语言:javascript
复制
a € b

并将其保存到编码为“latin9 9”的文件中。我看到这个文件由以下字节组成:

代码语言:javascript
复制
$ xxd euro-file.txt
0000000: 6120 e282 ac20 620a                      a ... b.

好的,那么:

代码语言:javascript
复制
0x61 = 'a' character
0x20 = space character
0xE282 = ???
0xAC20 = This is the value of the Euro symbol, but the bytes are backwards; the reference said the value should be 0x20AC
0x62 = 'b' character

请有人解释一下,欧元字符的价值如何能高于255?为什么为欧元字符编写的字节是向后的(0xAC 20而不是0x20AC)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-27 08:04:30

该字符仅由其Unicode代码点(即U+20AC )表示。它不表示拉丁文-9/ It 1252编码表中的字节值。它只是以这种方式列出,大概是为了消除确切意味着哪个字符的歧义;Unicode表是一个非常好的规范引用。

您正在运行的xxd文件显然是在UTF-8中编码的,其中“欧元”是使用字节E2 82 AC编码的。

您可能想从这里开始:每个程序员绝对、积极地需要了解编码和字符集才能处理文本。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32243613

复制
相关文章

相似问题

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