K. *_*R. 1 .net c# vb.net utf-8 character-encoding
为什么这一行
System.Text.Encoding.UTF8.GetBytes("ABCD±ABCD")
Run Code Online (Sandbox Code Playgroud)
给我10个字节而不是9个字节?虽然±是char(177)
是否有.Net函数/编码将此字符串正确转换为9个字节?
虽然±是char(177)
UTF-8编码为0xc2 0xb1 - 两个字节.基本上,每个代码点> = 128将占用多个字节 - 其中字节数取决于代码点的大小.
当用UTF-8编码时,该数据是10个字节.这里的错误是你的期望,它应该需要9.
您应该使用Windows-1251的编码得到±的177
var bytes = System.Text.Encoding.GetEncoding("Windows-1251").GetBytes("ABCD±ABCD");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4498 次 |
| 最近记录: |