如何将文本从十六进制转换为字符串到utf8

时间:2017-08-05 06:08:48

标签: php mysql phpmyadmin

我有一组内容存储在数据库中,带有十六进制编码。现在我想将其转换回可读消息以下是我的内容

十六进制代码

  

0052004D0030002E003000300020804A592900204EE37801FF1A003100320033003400350036 30025C3D60C54EAB53D700200043006800690074006300680061007400205E26676576845FEB 4E505427FF01

转换后应该显示为 例如:

  

RM0.00聊天代码:123456。尽情享受Chitchat带来的快乐吧!

我尝试使用下面的查询将十六进制转换回utf8字符串

SELECT CONVERT(UNHEX(content) USING UTF8) FROM mymsg

我也尝试设置与charset utf8的连接,但它仍然不适用于我。

1 个答案:

答案 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。