3

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

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

例如:

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

3 回答 3

4

两件事情。ASCII 字符为 7 位,0x00 到 0x7F。所以如果你有一个 Unicode 字符串,ASCII 字符不需要转换,因为它们在 Unicode 中是一样的......

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

于 2012-05-27T07:26:09.197 回答
1

á 不是 ASCII 字符。ASCII 字符集表

你也可以试试这个。

echo mb_convert_encoding('á rỉ', "UTF-8", "UTF-8");
于 2012-05-14T07:20:40.927 回答
-1

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

于 2012-05-14T06:26:38.147 回答