1

この完璧な正方形の文字を送信すると:

25²

そして、私が取得したutf8_decodeを使用して別のページでそれを取得します(期待どおり):

25²

今、私は平方根で同じことをしたいと思います。この平方根を送信すると:

√225

そして、取得する前と同じようにutf8_decodeを使用して(_ $ GET)を取得します。

?255

注:値を取得するときにこれを解決する方法(√225など)を好みますが、値の初期表現を変更するように強制する方法は好みません。

編集:私はmysqlを使用していると思いましたが、そうではありません。誤解を招く申し訳ありません。これは、値を取得するために使用するスクリプトです。

if (isset($_GET['json'])){  
  $json = urldecode($_GET['json']);
  $roots = json_decode($json, true);
  $arrList = utf8_decode(implode(",,,", $roots['nameList']));
  print_r($arrList)
}
4

2 に答える 2

1

このutf8_decode関数は、文字列をUTF-8からlatin1に変換します。平方根記号はlatin1では使用できないためutf8_decode、疑問符に置き換えてください。²はlatin1の位置0xB2に存在するため、これは発生しません。(ウィキペディアのlatin1のページで利用可能な文字を確認できます)

考えられる解決策は、呼び出しを削除しutf8_decodeてテキストをUTF-8のままにすることですが、コードの残りの部分がUTF-8を処理できることを確認する必要があります。

于 2012-10-07T15:29:24.573 に答える
0

平方根文字はISO-8859-1には含まれていません。そのため、変換できず、疑問符が表示されます。そのような特殊文字を使用したい場合は、UTF-8を使用することをお勧めします

于 2012-10-07T15:31:15.823 に答える