0

私の PHP Web サービスでは、JSON 形式でアクセント付きの文字を含む文字列を含むいくつかの配列を返す必要があります (クライアント アプリで JS を使用して解析します)。

しかし、htmlentities関数はアクセント付き文字を含む文字列を空の文字列に置き換えます! を使用しないhtmlentitiesと、 でエラーが発生しjson_encodeます。

$a = array('key' => 'èàìòù');
foreach ($a as $k => $v)
    $a[$k] = htmlentities($v, ENT_QUOTES | ENT_HTML5, 'UTF-8');

json_encode($a);

オプションも試しましたENT_COMPATが、空の値しか得られません。

print_rbeforeで配列を印刷するhtmlentitiesと、コンテンツは問題ないことに注意してください。

詳しくは:

すべてのファイルは BOM なしの UTF-8 形式です (Notepad++ で保存されます)。PHPとHTMLにUTF-8を設定するヘッダーを追加しようとしました。DB テーブルは utf8_unicode_ci 形式です。

バージョン: PHP 5.3.3、MySQL 5.5.30-1。

ご協力ありがとうございました!

4

1 に答える 1