JSONエンコードに関する問題

WBOY
WBOYオリジナル
2016-06-13 13:09:58758ブラウズ

json エンコードの問題
現在、他の人が呼び出すためのインターフェイスを作成しています。開発ドキュメントには、最終的に返されるデータは json ファイル形式であり、データ内の Json 形式の中国語の処理は utf- である必要があると記載されています。 8;
はデータ内に使用できません。これらの文字には UTF8 エンコードが必要です。
データは mssql に保存されます。次のコードを使用して、最終的に返される結果は上記の要件を満たすことができますか?

PHP コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
header('Content-type: application/json;charset=utf-8');
echo json_encode($data);


それとも、iconv 関数を使用して、中国語フィールドのデータ フィールドを変換およびエンコードする必要がありますか?

-----解決策--------------------------------
ヘッダーを追加する前提は、ファイルが UTF-8 であり、BOM ヘッダーがないため、データベースにどのように保存されるかによって異なります。
の場合は、最初に操作をテストする必要があります。コードが文字化けしている場合は、iconv を使用して変換します。iconv は、データベースが gb2312 または gbk であるなど、元のエンコーディングも知る必要があります。
string iconv ( string $in_charset , string $out_charset , string $str )

------解決策----------------------
入るのは簡単、出るのは難しい、これプログラミングの一貫性 原則、相手の要求を厳守し、出力する


------解決策---------
mssql には、言語セットを動的に変更するための手順がありません
接続時に必要な言語セット宣言 (utf-8) を指定する必要があります
後で取得されるデータが既に utf-8 でエンコードされるようにします
もちろん、これは SQL Server 2005 で行う必要があります上記で十分です

------解決策------------------
json を出力するだけで、次のことが可能になります。そうでない場合は、このデータを通常どおり呼び出して、中国語の文字をアイコン化するだけで済みます。
------解決策---------
データをどこで入手したとしても、知っておく必要がありますソース データのエンコード。ソース エンコードが utf8 でない場合は、json エンコードの前にトランスコードする必要があります。ソース データがすでに utf8 であることが確認されている場合は、json エンコードの前に処理する必要はありません。

json エンコード前のデータが既に utf8 であれば、このように使用しても問題ありません。
------解決策-----
いいえ...json_encode は UCS に変換されます- 2 コーディング…………
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。