PHP - 在混合字符串中将ASCII转换为Unicode

时间:2012-05-14 05:55:26

标签: php unicode ascii

我有一个包含Unicode和ASCII字符的字符串。

我可以使用utf8_decode将ASCII转换为Unicode字符,但它也会将unicode转换为unicode字符。如何在混合字符串中仅将ASCII字符过滤或转换为Unicode?

例如:

utf8_decode(& #225; rỉ);
~> á rỉ

3 个答案:

答案 0 :(得分:4)

两件事。 ASCII字符为7位,0x00至0x7F。因此,如果您有一个Unicode字符串,则不需要转换ASCII字符,因为它们在Unicode中是相同的...

现在,你的á是0xE1,因此它不是ASCII而是ISO Latin 1。并且你不能在一个字符串中有两个编码(或者你是狗屎......)。所以你需要的是从ISO Latin 1转换为UTF-8。

答案 1 :(得分:1)

á不是ASCII字符。 ASCII charset table

您也可以试试这个。

echo mb_convert_encoding('á rỉ', "UTF-8", "UTF-8");

答案 2 :(得分:-1)

您可以使用$string = iconv('ASCII//TRANSLIT','UTF-8', $string);