English 中文(简体)
有人可以为我解释一下 Encoding.Unicode.GetBytes("hello") 吗?
原标题:
  • 时间:2008-11-11 15:04:51
  •  标签:

我的代码:

        string input1;

        input1 = Console.ReadLine();

        Console.WriteLine("byte output");

        byte[] bInput1 = Encoding.Unicode.GetBytes(input1);


        for (int x = 0; x < bInput1.Length; x++)
            Console.WriteLine("{0} = {1}", x, bInput1[x]);

产出:

104 0 101 0 108 0 108 0 111 0

对于输入 "hello"

有一个字符映射的参考资料我可以理解这个吗?

问题回答

你应该阅读《绝对最少每个软件开发人员绝对必须了解关于Unicode和字符集(不要找借口!)》http://www.joelonsoftware.com/articles/Unicode.html

你可以在http://www.unicode.org找到所有Unicode字符的列表,但不要指望在没有了解很多关于文本编码问题的情况下就能读取那里的文件。

http://www.unicode.org/charts/,您可以找到所有 Unicode 代码表。 http://www.unicode.org/charts/PDF/U0000.pdf 显示 h 的代码点是 U + 0068。(另一个查看此数据的好工具是BabelMap。)

UTF-16编码的详细细节可在以下网址找到:http://unicode.org/faq/utf_bom.html#6http://www.ietf.org/rfc/rfc2781.txt。简而言之,在UTF-16LE中,U+0068被编码为0x68 0x00。用十进制表示,这是你看到的前两个字节:104 0。

其他字符也类似地进行编码。

最后,除了Unicode标准本身外,一个非常好的参考资料(在尝试理解各种Unicode规范时)是Unicode词汇表





相关问题
热门标签