php - 在 MySQL 中转换 PHP json_encode UTF8 十六进制实体

标签 php mysql json

在 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/

相关文章:

php - 使用 `for` 循环迭代带有前导零的数字

PHP 脚本利用 SQL 查询返回 false,即使数据库已更新

mysql - 两个数据库表以两种不同的方式相关......?

mysql - 为什么我的存储过程无法识别我的 varchar 字符串?

mysql - 转义字符串不起作用

javascript - MVC3 使用 Javascript 进行回发,类似于 $.post 的工作方式 - 但具有实际的回发?

javascript - 从 javascript 获取外部 JSON 文件 - 本地网站

php - 将数据列添加到现有的 mySQL 表

php - Joomla - 返回 JSON 数据的 Controller 任务

php - 更改购物车中的默认货币