javascript - 在 Javascript 中转换 16 位 Unicode 十六进制字符串
问题描述
我的 websocket 应用程序从仅使用 16 位 Unicode (wchar_t) 字符串的其他来源获取字符串输入。在发送之前,字符串被编码为十六进制,此处显示了单词“HELLO”的示例:
680065006C006C006F00
如何将该十六进制字符串转换为有效的 Javascript 字符串?我找到的最接近的是这里的 Node.js 示例(UTF-16 Hex Decode NodeJS),但我没有使用 Node.js,所以这不起作用。
如果所有字符串都是英文的,那么只需跳过每个 '00' 十六进制数字就很容易了,但我需要支持所有语言,我不确定如何从两个字节构造一个字符。
解决方案
谢谢@samthecodingman。 fromCodePoint
是我一直在寻找的。还需要交换字节顺序,但这似乎可行。
for (var i = 0; i < strLen; i+=4) {
c = parseInt(str.substr(i+2,2) + str.substr(i,2), 16)
s = s + String.fromCodePoint(c);
}
推荐阅读
- php - Prge_replace 在 php 中无法正常工作
- c++ - 在 C++ 中,函数返回自定义数据结构的向量会引发分段错误
- ethereum - ethereum/web3JS 特定用例:从单个私钥管理多个地址/交易
- c++ - C++ 打开文件对话框不显示 OpenCv 库
- jquery - 必需属性不适用于使用远程数据初始化的 select2 插件
- c++ - c++冒泡排序或线性排序,令人困惑的书
- html - HTML - 使用 display: inline 时如何将文本放在另一行文本下或以其他方式
- python - 优化代码以处理大量数据
- xamarin - 如何制作接受颜色字符串的模板绑定?
- uwp - IFrameworkView IFrameworkViewSource 和 OnPointerPressed 是什么关系