【发布时间】:2013-09-26 19:22:25
【问题描述】:
为什么会有这一行
System.Text.Encoding.UTF8.GetBytes("ABCD±ABCD")
给我 10 个字节而不是 9 个字节? 虽然 ± 是 char(177)
是否有 .Net 函数/编码可以将此字符串正确翻译成 9 个字节?
【问题讨论】:
-
“正确”很大程度上取决于“正确”编码是什么。如果您打算使用 UTF-8,那么:没有办法将其“正确”编码为 9 个字节。如果您的意图是使用 some 编码将其变为 9 个字节,则需要预先确定要使用的基于代码页的编码以及原因,以及您将对该代码页中未定义的数据执行什么操作。
-
“正确”的定义:能够将其从字节转换回原始字符。示例:ASCII 编码将无法正确执行此操作,尽管它将被限制为我预期的 9 个字符。
标签: c# .net vb.net utf-8 character-encoding