iconv - 入力文字列に不正な文字を検出しました。
違法なことは何もしていないのですが、何か問題があるのでしょうか?
if (strtolower($matches[1]) != 'utf-8') {
var_dump($matches[1]);
$xml = iconv($matches[1], 'utf-8', $xml);
$xml = str_replace('encoding="'.$matches[1].'"', 'encoding="utf-8"', $xml);
}
以下は私のデバッグ/エラーです。
string(12) "windows-1252"
Notice (8): iconv() [http://php.net/function.iconv]: Detected an illegal character in input string [APP/models/sob_form.php, line 16]
上記のコードが確かに16行目であることを確認しました。
29
3
しかし、受け入れられた回答を使用した場合でも、入力文字列中の文字が音訳できない場合には、PHP Noticeが表示されます。
そこで、音訳できない文字を無視する IGNORE を使用する必要があります。
不正な文字は、
$matches[1]
ではなく、$xml
の中にあります。試しに
また、入力された文字列を見せてくれると、より良い答えが得られると思います。
私は一つの解決策を見つけました。
utf8_encode()を使う