【发布时间】:2011-12-05 08:33:51
【问题描述】:
如何转换
十六进制 UTF-8 字节 -E0 A4 A4 到十六进制代码点 - 0924
参考:http://www.ltg.ed.ac.uk/~richard/utf-8.cgi?input=e0+a4+a4&mode=bytes
我需要这个,因为当我在 c# 中读取 Unicode 数据时,它会将其视为单字节序列并显示 3 个字符而不是 1,但我需要 3 个字节序列(读取 3 个字节并显示单个字符),我尝试了很多解决方案但没有得到结果。
如果我可以显示或存储一个 3 字节序列 utf-8 字符,那么我不需要转换。
senario 是这样的:
string str=getivrresult();
在 str 中,我有一个单词,每个字符为 3 字节 utf-8 序列。
已编辑:
string str="त";
//i want it as "त" in str.
Character त
Character name DEVANAGARI LETTER TA
Hex code point 0924
Decimal code point 2340
Hex UTF-8 bytes E0 A4 A4
Octal UTF-8 bytes 340 244 244
UTF-8 bytes as Latin-1 characters bytes à ¤ ¤
谢谢。
【问题讨论】:
-
请向我们展示您到目前为止所做的尝试。
-
真的不清楚您的输入是什么以及您想要什么输出......显示两者的示例会有所帮助。
-
@JonSkeet:我假设 OP 想要逆转
string.Join(" ", Encoding.UTF8.GetBytes(string).Select(x => x.ToString("X2"))); -
@dtb:可能,但并不完全清楚。特别是,输入是字节数组还是字符串并不明显......
-
BitConverter.ToString(b).Replace("-", "")