我如何转换
十六进制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();
在字符串中,我有一个单词,每个字符都是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 à ¤ ¤
谢谢。
发布于 2011-10-11 14:17:59
在Encoding
类中使用GetString
方法:
byte[] data = { 0xE0, 0xA4, 0xA4 };
string str = Encoding.UTF8.GetString(data);
该字符串现在包含一个字符代码为0x924的字符。
发布于 2011-10-12 05:30:42
//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);
https://stackoverflow.com/questions/7727377
复制相似问题