在我的数据库中,有许多特殊字符,如(İstanbul,Yeşilköy,Atatürk等)。
当我直接从数据库中获取这些数据时一切正常。意味着数据保持原始状态,但是当我使用json_encode()将这些数据转换为JSON时会出现问题。
将所有这些数据编码后转换为一些奇怪的字符 ?stanbul,Bak?rköy......
但解码后(使用json_decode)我需要编码之前的原始字符串(json_encode)。
我尝试了网上提供的许多解决方案以解决问题,但在我的案例中没有一个完全正常工作。
我试过的一些解决方案 -
如果不可能得到原始字符串至少应该没有?喜欢的东西(删除这些东西)。
建议我解决这个问题。
答案 0 :(得分:2)
自PHP 5.4起,您可以使用:
json_encode( $text, JSON_UNESCAPED_UNICODE );
答案 1 :(得分:2)
在 mysqli_query();
之前使用 mysqli_set_charset(connection,charset);示例:强>
mysqli_set_charset( $CONNECTION, "utf8" );
$result_query = mysqli_query( $CONNECTION, $query );
答案 2 :(得分:1)
这个图书馆保存了我的生命(https://github.com/neitanod/forceutf8)。
以前我使用了错误的方法来解决问题。 toUTF8()功能可以节省生命。