PHP5.2.17サーバー+MySQL5.1.65を使用しています。
あるフィールドを含むテーブルがあり、VARCHAR utf8_general_ci
このテーブルからレコードをフェッチします。
これが私が接続を開く方法です。特別なことは何もありません。
$link = mysql_connect('localhost', 'user', 'pass');
Unicodeエスケープされた特殊文字を含むJSONオブジェクトで応答する必要があります。つまり、\u00e1
表記法です。
$result = mysql_query(sprintf("select * from data t where t.domain='%s'", escape($domain));
while($row = mysql_fetch_array($result)) {
$r[] = array(
"tagid" => $row['DATAID'],
"name" => $row['NAME']
);
)
$encoded = json_encode($r);
header('Content-type: application/json');
exit($encoded);
null
私の問題は、JSON応答のように特殊文字(áé..)を含むフィールドが返されることです。
しばらくグーグルで検索した後、PHP 5.2にはjson_encode
パラメーターがないことがわかったので、名前フィールドを手動でユニコードエスケープする必要があります。しかし、どうすればこれを行うことができますか?