0 レビュー
1 回答
php-utf8_decodeの後にjson_decodeがnullを返すのはなぜですか
Unicode文字を含む文字列をデータベースから取得しましたが、 その後、それらをutf8_decodedして、はっきりと読めるようにしました。
次に、文字列を json_decode
に渡しましたが、nullが返されます。
utf8_decodeを指定しない場合、 json_decode
はé
文字を含む配列を返します。
わからない
0
レビュー
答え :
解決策:
utf8_decode
文字列のエンコーディングをUTF-8からISO-8859-1(別名ラテン語)に変換します 1. json_decode
は、UTF-8でエンコードされた文字列を予期し、要求し、返します。
それが明らかに機能していない理由です。
データベースから取得した文字列は、明らかにUTF-8でエンコードされています。これは良いことです。 JSONをデコードする前に、Latin-1に変換してはいけません。後で変換することもすべきではありません。すべてをUTF-8に保持するだけです。唯一の問題は、ブラウザにUTF-8を処理するように正しく指示していないことです。簡単な答えは、適切なHTTPヘッダーを設定することです。
header('Content-Type: text/html; charset=UTF-8');
より長く、より微妙な答えについては、 UTF-8全体、WebアプリでのUnicodeの前面から背面への処理およびを参照してください。すべてのプログラマーがテキストを操作するためのエンコーディングと文字セットについて絶対に、積極的に知っておく必要があること。
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。