我有一個Unicode和ASCII字符的字符串。PHP - 在混合字符串中將ASCII轉換爲Unicode
我可以使用utf8_decode
將ASCII轉換爲Unicode字符,但它也將unicode轉換爲unicode字符。如何在混合字符串中只將ASCII字符過濾或轉換爲Unicode?
例如:
utf8_decode(& #225; rỉ);
~> á rỉ
我有一個Unicode和ASCII字符的字符串。PHP - 在混合字符串中將ASCII轉換爲Unicode
我可以使用utf8_decode
將ASCII轉換爲Unicode字符,但它也將unicode轉換爲unicode字符。如何在混合字符串中只將ASCII字符過濾或轉換爲Unicode?
例如:
utf8_decode(& #225; rỉ);
~> á rỉ
兩件事。 ASCII字符是7位,0x00到0x7F。所以,如果你有一個Unicode字符串,ASCII字符不需要轉換,因爲它們在Unicode中是相同的... ...
現在,你的0x是0xE1,因此它不是ASCII碼,而是ISO Latin 1
。而且你不能在一個字符串中使用兩種編碼(或者你在搗亂的時候......)。所以你需要將ISO Latin 1轉換爲UTF-8。
可以使用$string = iconv('ASCII//TRANSLIT','UTF-8', $string);
á不是一個ASCII字符。 ASCII charset table
你也可以試試這個。
echo mb_convert_encoding('á rỉ', "UTF-8", "UTF-8");
-1輸入不是'ASCII // TRANSLIT'。 – tripleee