2

次のような HTML フォームを投稿したときに返される POST 値について質問があります。

<form action="" method="POST">
    <input type="text" name="test">
    <input type="submit">
</form>

入力フィールドに jöachi@æøåèÆ と入力し、$_POST 値に対して var ダンプを実行すると、次のようになります。

array (size=1)
  'test' => string 'jöachi@æøå&#232;Æ' (length=17)

結果では、è 記号が ISO Latin-1 コード è に置き換えられていることがわかります。

そうならないようにするにはどうすればよいのでしょうか?

私のページのエンコーディングは ISO-8859-10 で、UTF-8 に変更しようとしましたが、うまくいきませんでした。

また、Apacheのmagic_quotesと関係があるのではないかと思いましたが、有効になっていません。

どんな助けでも大歓迎

4

2 に答える 2

1

いずれにせよ、UTF-8 を使用することはあなたにとって悪いことでしょうか? そうでない場合は、メタで UTF-8 を使用していることを明示してみてください。

<meta charset="utf-8" />

それはおそらくあなたの問題を解決します。

私はすべての Web アプリケーションで UTF-8 を使用しており、すべての通信が UTF-8 で行われていることを常に確認しています。データベースのすべての照合順序も同様です。

とにかく、毎回フォームを強制的に UTF-8 で送信するようにしてください。

<form action="" method="POST" accept-charset="UTF-8">
于 2013-09-24T15:48:06.093 に答える
0

これは文字セットの問題です。

</head>タグの前にこの行を使用します。

<meta http-equiv="content-type" content="text/html; charset=utf-8" />

MySql にデータを保存する場合は、最初に mysql 照合順序を UTF-8 一般的な ci に変更します。

データを保存する場所にこれらの2行を追加します。

mysql_query( "SET NAMES 'utf8'" );
mysql_query( "SET CHARACTER_SET 'utf8'" );
于 2013-10-09T10:22:01.080 に答える