javascript转换hex到UTF16 再将utf16转换到utf8
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript转换hex到UTF16 再将utf16转换到utf8相关的知识,希望对你有一定的参考价值。
我现在有一串hex的String,需要用js先将其转换到UTF16,再将UTF16转换到UTF8,求一个小例子或者帮我说一下思路!谢谢~
参考技术A 50javascript转换hex到UTF16 再将utf16转换到utf8 参考技术B 实用多字符编码转换工具www.vipaq.com/WebApp/encoding追问
没有我需要的
追答给一段hex的串
参考技术C 2vd.cn。。。。将 Hex UTF-8 字节转换为 Hex 代码点
【中文标题】将 Hex UTF-8 字节转换为 Hex 代码点【英文标题】:convert Hex UTF-8 bytes to Hex code point 【发布时间】: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("-", "")
【参考方案1】:
在Encoding
类中使用GetString
方法:
byte[] data = 0xE0, 0xA4, 0xA4 ;
string str = Encoding.UTF8.GetString(data);
字符串现在包含一个字符代码为 0x924 的字符。
【讨论】:
Thankyou Guffa 我得到了答案,正如你所说的那样。我正在发布它。【参考方案2】: //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);
【讨论】:
gag .... 跳过string.Format
和Convert.ToByte
和int.Parse
,直接说data[i] = c;
怎么样?以上是关于javascript转换hex到UTF16 再将utf16转换到utf8的主要内容,如果未能解决你的问题,请参考以下文章