在我的数据库中,有许多特殊字符,例如(İstanbul、Yeşilköy、Atatürk 等)。
当我直接从数据库中获取这些数据时一切正常。意味着数据保持原始但当我使用 json_encode() 将这些数据转换为 JSON 时出现问题。
编码后所有这些数据转换为一些奇怪的字符,如 ?stanbul、Bak?rköy...
但是在解码(使用 json_decode)之后,我需要编码(json_encode)之前的原始字符串。
我尝试了网络上提供的许多解决方案来解决问题,但没有一个能完全适用于我的情况。
我尝试过的一些解决方案-
- $item = utf8_encode($item);
- $item = html_entity_decode($item, ENT_COMPAT, 'UTF-8');
- http://www.php.net/manual/en/function.json-encode.php
- 我还尝试了 github 上的一个库 (https://github.com/neitanod/forceutf8)
如果不可能得到原始字符串至少应该没有?像东西(删除这些东西)。
给我一些解决问题的建议。
最佳答案
从 PHP 5.4 开始你可以使用这个:
json_encode($text, JSON_UNESCAPED_UNICODE);
关于php - 处理 json_encode 中的特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42383468/