2017-02-22 4 views
1

私のデータベースには、(İstanbul、Yeşilköy、Atatürkなどの)多くの特殊文字があります。json_encodeでの特殊文字の扱い

私はデータベースから直接これらのデータをすべてフェッチします。データは元のままですが、json_encode()を使用してこれらのデータをJSONに変換すると問題が発生します。

のようないくつかの奇妙な文字に変換し、これらすべてのデータを符号化した後?stanbul、バク?rköy...

しかし、私は(json_encode)をコードする前にした元の文字列を必要とする(json_decodeを使用して)decodeing後

問題を解決するためにウェブ上で提供される多くのソリューションを試しましたが、いずれも私の場合は完全に機能していません。

いくつかのソリューションは、私が

githubの上で利用可能なライブラリを試してみましたか? (これらのものを取り除く)。

問題を解決するために私に何か提案してください。

+0

//あなたのmysqlクエリにcharsetを設定してください ** mysqli_query($ conn、 "SET CHARSET utf8")** – Sharif

+0

私はヘッダー( 'Content-Type:application/json charset = utf-8')にヘッダーを設定しています;私のデータはデータベースから取得した後は問題ありませんが、エンコード後に変更されています –

答えて

0

このライブラリは、私の人生(https://github.com/neitanod/forceutf8)を保存しました。

以前は間違った方法で問題を解決していましたが、 toUTF8()機能は命を救いました。

2

PHP 5.4ので、あなたはこれを使用することができます。

json_encode($text, JSON_UNESCAPED_UNICODE); 
2

使用mysqli_set_charset(接続、文字セットを)。より前mysqli_query();

例:

mysqli_set_charset($CONNECTION, "utf8"); 

$result_query = mysqli_query($CONNECTION, $query);