我有一个带有 Unicode 和 ASCII 字符的字符串。
我可以utf8_decode
用来将 ASCII 转换为 Unicode 字符,但它也可以将 unicode 转换为 unicode 字符。如何在混合字符串中仅过滤 ASCII 字符或将其转换为 Unicode?
例如:
utf8_decode(& #225; rỉ);
~> á rỉ
两件事情。ASCII 字符为 7 位,0x00 到 0x7F。所以如果你有一个 Unicode 字符串,ASCII 字符不需要转换,因为它们在 Unicode 中是一样的......
现在,您的 á 是 0xE1,因此它不是 ASCII 而是ISO Latin 1
. 而且你不能在一个字符串中有两种编码(或者你在狗屎溪......)。因此,您需要将 ISO Latin 1 转换为 UTF-8。
您可以使用$string = iconv('ASCII//TRANSLIT','UTF-8', $string);