0

まず、文字列が XML ファイルから取得されます。

置き換えようとしている特殊文字があります:「£」

str_replace を次のように使用すると:

$ability1 = str_replace("£", "", $ability);

これは var_dump が示すものです:

string(138) "Argothian Pixies can't be blocked by artifact creatures.�Prevent all damage that would be dealt to Argothian Pixies by artifact creatures."

$ability1 が渡されると、wordpress はそれを投稿に挿入します。これが結果です。

Argothian Pixies can’t be blocked by artifact creatures.

� 文字の後のすべてを削除します。

"" であるはずなのに、なぜ £ が � に変更されるのでしょうか。何が欠けているのかよくわかりません

4

3 に答える 3

2

文字列が正しいエンコーディングを使用していることを確認し、 UTF8 へのエンコーディングまたはデコーディングを試してから、str_replace を適用してください。

于 2012-04-04T13:04:52.150 に答える
1

XML ファイルはどのようにエンコードされますか? おそらくUTF-8だと思います。その場合、コードで正しく処理するために utf_decode() などの関数を確認する必要があります (コードが ANSI であると仮定します)。

于 2012-04-04T13:05:36.647 に答える
1

文字列が UTF-8 になっているのではないでしょうか? PHP。次のようにする必要があります。

$ability1 = utf8_decode($ability);
$ability1 = preg_replace("/[£ ]/","", $ability1);
$ability1 = utf8_encode($ability1);
于 2012-04-04T13:06:49.593 に答える