Php 处理json_编码中的特殊字符

Php 处理json_编码中的特殊字符,php,json,Php,Json,在我的数据库中,有许多特殊字符,如(斯坦布尔、耶伊尔克、阿塔图尔克等) 当我直接从数据库中获取这些数据时,一切正常。表示数据保持原始状态,但在使用JSON_encode()将这些数据转换为JSON时会出现问题 在编码之后,所有这些数据都转换成一些奇怪的字符,比如 斯坦布尔,巴克?尔基 但是在解码之后(使用json_解码),我需要编码之前的原始字符串(json_编码) 我尝试了许多在网络上提供的解决方案来解决这个问题,但没有一个完全适用于我的情况 我尝试过一些解决方案- $item=utf8\u

在我的数据库中,有许多特殊字符,如(斯坦布尔、耶伊尔克、阿塔图尔克等)

当我直接从数据库中获取这些数据时,一切正常。表示数据保持原始状态,但在使用JSON_encode()将这些数据转换为JSON时会出现问题

在编码之后,所有这些数据都转换成一些奇怪的字符,比如 斯坦布尔,巴克?尔基

但是在解码之后(使用json_解码),我需要编码之前的原始字符串(json_编码)

我尝试了许多在网络上提供的解决方案来解决这个问题,但没有一个完全适用于我的情况

我尝试过一些解决方案-

  • $item=utf8\u编码($item)
  • $item=html_entity_decode($item,ENT_COMPAT,'UTF-8')
  • 我还尝试了github()上提供的库
如果无法获得原始字符串,至少不应该有任何?喜欢的东西(去掉这些东西)


建议我一些解决问题的方法。

由于PHP 5.4,您可以使用以下方法:

json_encode($text, JSON_UNESCAPED_UNICODE);
使用mysqli_set_字符集(连接,字符集);在mysqli_query()之前

示例:

mysqli_set_charset( $CONNECTION, "utf8" );

$result_query = mysqli_query( $CONNECTION, $query );
这个图书馆救了我的命()

以前我用错误的方法解决问题。
toUTF8()函数是救命稻草。

//在mysql查询mysqli_查询($conn,“set charset utf8”)中设置字符集我正在设置头到头('Content-Type:application/json charset=utf-8');我的数据在从数据库中获取后很好,但在编码后发生了变化,就像一个魔咒!非常感谢你!