2012-05-14 3 views
3

У меня есть строка с символами Unicode и ASCII.PHP - преобразование ASCII в Unicode в смешанной строке

Я могу использовать utf8_decode для преобразования символов ASCII в Unicode, но также преобразует unicode в символы Unicode. Как я могу фильтровать или преобразовывать только символы ASCII в Unicode в смешанной строке?

Например:

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

ответ

3

Две вещи. Символы ASCII являются 7-битными, от 0x00 до 0x7F. Поэтому, если у вас есть строка Unicode, символы ASCII не нужно преобразовывать, потому что они одинаковы в Unicode ...

Теперь ваш символ 0xE1, поэтому это не ASCII, а ISO Latin 1. И у вас не может быть двух кодировок в одной строке (или вы до сих пор дергаете ...). Так что вам нужно конвертировать из ISO Latin 1 в UTF-8.

-1

вы можете использовать $string = iconv('ASCII//TRANSLIT','UTF-8', $string);

+0

-1 Вход не является 'ASCII // TRANSLIT'. – tripleee

1

á не является ASCII-символов. ASCII charset table

Вы также можете попробовать это.

echo mb_convert_encoding('á rỉ', "UTF-8", "UTF-8"); 
Смежные вопросы