php - UTF-16 到 UTF-8 PHP 转换
问题描述
我有一个从 USB 调制解调器设备返回的 GSM-7 字符串,其中包含 UTF-16 编码字符串。示例字符串是“007A006E0061006B006F007600690020010D0107017E0020006800610068006100730068”。
我需要一个 PHP 解决方案(函数)将字符串从 UTF-16(小端序)转换为 UTF-8(人类可读格式)。从上面的字符串翻译应该是这个“znakovi čćž hahash”。我花了几个小时寻找合适的解决方案,但没有成功。我尝试使用带有许多不同选项的 iconv 和 mb_convert_encoding,但我没有得到想要的结果。我找到了一个在线服务来转换字符串,这里是打印屏幕https://prnt.sc/v09r57
先感谢您
解决方案
以下代码片段可能会有所帮助(我是php
菜鸟,所以自己制作一个函数;也许您需要安装或启用 PHP 扩展intl
):
<?php
$strinput = "007A006E0061006B006F007600690020010D0107017E0020006800610068006100730068";
print "$strinput\n";
$stroutput = '';
for ( $i = 0; $i < strlen($strinput); $i += 4 ) {
$stroutput .= IntlChar::chr(hexdec( substr( $strinput,$i,4)));
};
print $stroutput;
?>
输出:.\SO\64382302.php
007A006E0061006B006F007600690020010D0107017E0020006800610068006100730068
znakovi čćž hahash
推荐阅读
- javascript - 在 Dropzone.js 中处理事件
- python - Apache Beam 中累积窗口和丢弃窗口的区别?
- c++ - 制作时出错,C++ 'db.c:2127: error: expected ';' 在'||'之前 令牌'
- c++ - 无法在 Visual Studio 代码中构建和运行 C++ 代码
- spring - Eureka 没有通过 docker deploy 在 ec2 上注册各种服务/zuul,但允许在本地机器上正常注册服务
- python - user.bot discord.py 重写的实现
- python - 从谷歌协作中导入的自定义模块获取函数时出错
- angular - 从打字稿中的对象数组中删除元素的问题
- git - jenking 无法从 github 签出
- c++ - C++'speechapi_cxx.h':没有这样的文件或目录 Visual Studio