首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >欧元符号Euro的十六进制表示

欧元符号Euro的十六进制表示
EN

Stack Overflow用户
提问于 2011-01-10 00:46:20
回答 6查看 28.2K关注 0票数 10

我使用XVI32 (十六进制编辑器)来获取欧元符号的十六进制表示,它给出的值是80。

另一个网站:http://www.string-functions.com/string-hex.aspx也做了同样的事情。

我不能理解为什么十六进制表示是80而不是0x20AC。这个0X80给出了128的十进制,如果我使用Alt+0128,它实际上会生成欧元符号。

谁能解释一下从字符串到十六进制转换背后的逻辑是什么?

谢谢

EN

回答 6

Stack Overflow用户

发布于 2011-01-10 00:57:09

字符编码(或字符集)将字符映射到字节值序列。您的字符集是windows-1252,它将欧元符号编码为单个十六进制字节0x80 (正如Oded所说,这是十进制的128 )。每个字符集对非ASCII字符进行不同的编码;关于0x80,没有什么本质上的“正确”或“错误”。

票数 9
EN

Stack Overflow用户

发布于 2011-01-10 00:49:33

十进制的128等于十六进制的80。

edit: 0x20AC将是十进制的8364。

根据this页面的说法,128对于UTF-8 (或任何其他unicode)是不正确的,但对于windows-1252 ( iso-8859-15也有,尽管别处也有)。

通常,如果你在Windows上使用一个标有欧元符号的键盘按键,那么原始的二进制八位数128就是你实际生成并插入到文件中的内容……如果文档附带了指定数据映射到相关字符的编码的信息,则这种方法在形式上是正确的。这将分别意味着windows-1252或iso-8859-15编码,它们应该在HTTP头中指定。

票数 2
EN

Stack Overflow用户

发布于 2015-08-12 19:38:21

Unicode在编码字符方面出现得很晚(大约在1992-93年间)。在此之前,OEM使用其特定的编码。在Windows环境中,您有许多特定于区域设置的编码。因此,根据Windows: Western的窗口编码,对于欧元,您将得到0x80。然而,Unicode涵盖了BMP的货币符号块(从U+20A0到U+20CF)中的所有货币符号。因此,根据Unicode,您可以使用U+20AC表示欧元货币符号,而根据Windows编码,您可以使用0x80表示欧元货币符号。

要查看不同之处,请在windows计算机上打开charmap.exe并检查高级视图。从字符集中选择Windows: Western。在这里,您将看到原因。

有关更多信息,请参阅https://en.wikipedia.org/wiki/Windows-1252

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

https://stackoverflow.com/questions/4640354

复制
相关文章

相似问题

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