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 回答