2016-08-02 18 views
1

これについて多くの質問があります。私は多くのことを試しましたが、私はそれを修正することができませんでした。おそらく私の限られた知識のために解決策を実行できなかったでしょうか?json_encode()は、特殊文字の場合nullを返します

mysqlデータベースからデータを選択し、json_encode()関数を使用します。これは、特殊文字(トルコ語)を含むデータを除き、機能します。これらの値の場合、jsonはnullを返します。これをどうすれば解決できますか?ここで

は私の単純なPHPコードです:mysqlの中

<?php 

require('init.php'); 

$sql="SELECT * FROM tablename;"; 

$result=mysqli_query($con,$sql); 
$response=array(); 

while($row=mysqli_fetch_array($result)){ 


array_push($response,array("X"=>$row["x"],"Y"=>$row["y"])); 

} 

echo json_encode($response); 


?> 

、列はUTF8 - トルコ語に設定されています。私はヘッダーの設定、いくつかの関数の呼び出し、utf8エンコーディングなどのPHPファイルの再作成などの作業を試みましたが、何も動作しませんでした。

+0

mysqliの文字セットを設定しましたか?http://php.net/manual/en/mysqli.set-charset.php – RiggsFolly

+2

[json \ _encode function:special characters]の重複している可能性があります(http://stackoverflow.com/質問/ 20694317/json-encode-function-special-characters) –

+0

こんにちはRiggs。いいえ、私はまだそれを試していない。私はそれを私の接続スクリプト(init.php)に書く必要がありますか? – user6650650

答えて

1

私の接続スクリプトでmysqli_set_charset関数を使用すると、問題が解決しました。同様の質問でこれを見つけることができませんでした。ユーザー "RiggsFolly"に感謝します。

-1

TRUEjson_decode($string, TRUE);これは、ユニコードエスケープシーケンス(\u00d6など)の代わりにutf8文字を取得します。

接続、表、およびHTMLには、(またはutf8mb4)が必要です。 thisを参照してください。

関連する問題