2011-07-01 11 views
3

私はPOSTフォームからデータを取得しようとしています。ユーザーが"habláis"を入力すると、ビューソースには"habláis"と表示されます。私は、文字列の比較のために"habláis"にこれを変換したいのですが、両方utf8_encode()htmlentities()habláisを出力している、とhtmlspecialchars()は何もしません。 str_replaceを使用しますが、文字列を検索するときには認識されません。PHP:utf-8 encode、奇妙な結果をもたらすhtmlentities

私はutf-8の文字セットを一貫してページを使用しています。何が起きているのか?

答えて

3

私はこれがあなたの問題であるかどうかわからないんだけど、あなたはUTF-8パラメータでhtmlentitiesを呼び出していますか?

はhtmlspecialchars()と同様に

が、それは が 変換に使用される文字セットを定義し オプションの第三引数の文字セットを取ります。それは、デフォルトではありませんので、私は尋ねます。現在、ISO-8859-1 文字セットがデフォルトとして使用されています。

だから、このようなあなたの関数を呼び出すしようとする場合があります:

$output = htmlentities($input, ENT_COMPAT, 'UTF-8'); 

これはあなたの問題を解決していますか?

4

おそらくhtmlentities()操作のための文字セットとしてUTF-8を指定していません。