1

我的编码有问题。我想要的输出是:

string(17) "New & old"

这也是我使用双引号时的输出。

这是我的代码。我无法更改单引号,因为它是另一个函数的输出。

$string = 'New \x26amp\x3Bamp\x3B old';
$string = iconv('ASCII', 'UTF-8//IGNORE', $string);
var_dump($string);

这是我的输出:

string(26) "New \x26amp\x3Bamp\x3B old"

那么在使用单引号时如何改变这种行为。您可以将字符串从单引号转换为双引号吗?

4

1 回答 1

2

这是一种方法:

$str = preg_replace_callback('/\\\x([0-9A-F]{2})/', function ($m) {
    return pack('H*', $m[1]);
}, $str);

它用它所代表的实际字节替换十六进制表示法。它与Unicode没有太大关系。

于 2012-04-24T11:32:52.343 回答