您好,我是一名编程和网络开发的初学者。我有一个关于ASCII和Unicode编码的问题。 在MSDN和其他网站示例中,经常会使用以下内容: byte[] byteData = Encoding.ASCII.GetBytes(data); 这是因为这些代码示例过时了吗?难道不应该是这样的吗?byte[] byteData = Encoding.Unicode.GetBytes(data); 感谢您的输入!
这要看你是否需要ASCII或UTF-16的结果。如果你需要其中一种,选择另一种就是错误的。 如果你在谈论某个网络协议,你必须找出该协议所预期的字符编码。使用错误的编码会导致不良后果。 当然了,ASCII有着很大的限制 - 它非常基于英语(仅拉丁字符,没有重音符号),但对于某些协议来说是正确的。其他协议可能使用UTF-16(Encoding.Unicode)、UTF-8或其他编码... 或者他们会让你在协议中自己指定编码。
Encoding.UTF8
,你通常会得到一个不幸的UTF-8变体,它在字节前面放置了一个虚假的、麻烦的BOM。要获得干净的UTF-8,你必须说new UTF8Encoding(false)
。 - bobince