我怎么能转换为 十六进制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 à ¤ ¤
谢谢。
答案 0 :(得分:6)
使用GetString
类中的Encoding
方法:
byte[] data = { 0xE0, 0xA4, 0xA4 };
string str = Encoding.UTF8.GetString(data);
字符串现在包含一个字符代码为0x924的字符。
答案 1 :(得分:0)
//utf-8 Single Byte Sequence input
string str = "त";
int i = 0;
byte[] data=new byte[3];
foreach (char c in str)
{
string tmpstr = String.Format("{0:x2}", (int)c);
data[i] = Convert.ToByte(int.Parse(tmpstr, System.Globalization.NumberStyles.HexNumber));
i++;
}
//utf-8 3-Byte Sequence Output now stp contains "त".
string stp = Encoding.UTF8.GetString(data);