C# 将十六进制UTF-8字节转换为十六进制代码点
如何转换C# 将十六进制UTF-8字节转换为十六进制代码点,c#,unicode,utf-8,hex,C#,Unicode,Utf 8,Hex,如何转换 十六进制UTF-8字节-E0 A4 A4到十六进制代码点-0924 参考: 我需要这个,因为当我在c#中读取Unicode数据时,它将其视为单字节序列并显示3个字符而不是1个字符,但我需要3个字节序列(读取3个字节并显示单个字符),我尝试了许多解决方案,但没有得到结果 如果我可以显示或存储一个3字节的utf-8字符序列,那么我就不需要转换 塞纳里奥是这样的: string str=getivrresult(); 在str中,我有一个单词,每个字符都是3字节utf-8序列 编辑
十六进制UTF-8字节-E0 A4 A4到十六进制代码点-0924 参考: 我需要这个,因为当我在c#中读取Unicode数据时,它将其视为单字节序列并显示3个字符而不是1个字符,但我需要3个字节序列(读取3个字节并显示单个字符),我尝试了许多解决方案,但没有得到结果 如果我可以显示或存储一个3字节的utf-8字符序列,那么我就不需要转换 塞纳里奥是这样的:
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 à ¤ ¤
谢谢。在
编码
类中使用获取字符串
方法:
byte[] data = { 0xE0, 0xA4, 0xA4 };
string str = Encoding.UTF8.GetString(data);
该字符串现在包含一个字符,字符代码为0x924。请向我们展示您迄今为止所尝试的内容。您的输入内容和输出内容还不清楚。。。显示两者的示例会很有帮助。@JonSkeet:我假设OP想要反转
string.Join(“,Encoding.UTF8.GetBytes(string)。选择(x=>x.ToString(“X2”)代码>@dtb:可能,但还不完全清楚。特别是,输入是一个字节数组还是一个字符串…位转换器。ToString(b)。替换(“-”,“”)谢谢你,我得到了答案,完全如你所说。我正在发布它。gag。。。。。。。。。。。。跳过string.Format
和Convert.ToByte
和int.Parse
,只说data[i]=c代码>?
//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);