Rah*_*hul 9 character-encoding euro
我使用XVI32(十六进制编辑器)来获取欧元符号的十六进制表示,它给我的值为80.
另一个站点:http://www.string-functions.com/string-hex.aspx也是如此.
我无法理解为什么十六进制表示是80而不是0x20AC.这个0X80给出十进制128,如果我使用Alt + 0128它实际上产生欧元符号.
有人可以说明从字符串到十六进制转换的转换背后的逻辑吗?
谢谢
字符编码(或字符集)将字符映射到字节值序列.你的charset是windows-1252,将欧元符号编码为单个十六进制字节0x80(十进制为128,如Oded所说).每个字符集不同地编码非ASCII字符; 关于0x80,没有什么从根本上"正确"或"错误".
十进制的 128 是十六进制的 80。
编辑:0x20AC 十进制为 8364。
根据此页面,128 对于 UTF-8(或任何其他 unicode)来说是不正确的,但对于 windows-1252 来说是正确的(iso-8859-15 也有它,尽管在其他地方)。
通常,如果您在 Windows 上使用标有欧元符号的键盘键,则原始八位字节 128 就是您实际生成并插入到文件中的内容......如果文档附带以下信息,则这种方法在形式上是正确的:指定数据映射到相关字符的编码。这意味着,应分别在 HTTP 标头中指定 windows-1252 或 iso-8859-15 编码。
| 归档时间: |
|
| 查看次数: |
24553 次 |
| 最近记录: |