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 コーディング…………