在 php 中,json_encode()
会将 UTF8 编码为十六进制实体,例如
json_encode('中'); // become "\u4e2d"
假设数据“\u4e2d”现在存储在 MySQL 中,是否可以在不使用 PHP 的情况下从 “\u4e2d”
转换回 中
,只是简单MySQL?
最佳答案
在我的配置中,选择hex('中');返回 E4B8AD 这是 UTF8 字节的十六进制代码。自然而然 与代码点 4e2d 的十六进制不同,但你可以得到 用 select hex(cast('中' as char(1) 字符集 utf16));.
更新:发问者已经编辑了问题,在我看来是一个完全不同的问题,现在显然是:当 4e2d 是中和的代码点时,如何在给定包含 '\u4e2d' 的字符串的情况下获取 '中'默认字符集是utf8。好的,那就是 选择 cast(char(conv(right('\u4e2d',4),16,10) 使用 utf16) 作为 char(1) 字符集 utf8);
关于php - 在 MySQL 中转换 PHP json_encode UTF8 十六进制实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50608913/