我有一组内容存储在数据库中,带有十六进制编码。现在我想将其转换回可读消息以下是我的内容
十六进制代码
0052004D0030002E003000300020804A592900204EE37801FF1A003100320033003400350036 30025C3D60C54EAB53D700200043006800690074006300680061007400205E26676576845FEB 4E505427FF01
转换后应该显示为 例如:
RM0.00聊天代码:123456。尽情享受Chitchat带来的快乐吧!
我尝试使用下面的查询将十六进制转换回utf8字符串
SELECT CONVERT(UNHEX(content) USING UTF8) FROM mymsg
我也尝试设置与charset utf8的连接,但它仍然不适用于我。
答案 0 :(得分:2)
我在http://www.mrleong.net/post/114389343529/unicode-hexadecimal-to-utf-8-string-conversion
中使用过此功能我也试过这个:
$data = '0052004D0030002E0030003000200053006E00610070006300680061007400204EE37801FF1A00360036003100330037003730025C3D60C54EAB53D700200053006E00610070006300680061007400205E26676576845FEB4E505427FF01';
echo iconv('UTF-16BE', 'UTF-8', hex2bin($data));
并使用了这个
function hexToString($hex) {
return pack('H*', $hex);
}
echo mb_convert_encoding(hexToString($data), 'UTF-8', 'Unicode');
他们的输出是一样的。
RM0.00 Snapchat 代码:661377。尽情享受 Snapchat 带来的快乐吧!
阅读本文也以PHP的方式阅读本文: http://www.phptherightway.com/#php_and_utf8
它解释了如何在php,数据库和浏览器级别使用UTF-8。