Форум: "Прочее";
Текущий архив: 2010.10.03;
Скачать: [xml.tar.bz2];
ВнизPHP: utf8->windows1251 Найти похожие ветки
← →
Дмитрий С © (2010-07-08 09:46) [0]Может уже есть такая функция: нужно преобразовать строку из кодировки utf8 в windows1251, а символы, которые не могут быть преобразованы заменились html сущностями:
Например:
ABC索DEF -> ABCӒDEF (1234 - это я для примера вставил).
← →
Дмитрий С © (2010-07-08 09:47) [1]Вот как здесь, если посмотреть код страницы,то получилось: ABC索DEF
← →
Дмитрий С © (2010-07-08 10:28) [2]Сделал так.
// экранируем плюсы
$value = mb_ereg_replace("\\+", "\\+", $value);
// переводим в кодировку windows1251
$value = mb_convert_encoding($value, "windows-1251", "utf-8");
// заменяем U+HHHH на &#DDDDD; (в кодировке windows-1251, поэтому более быстрая функция)
$value = preg_replace("~U\+([A-F0-9]{4})~ie", ""&#".hexdec("$1").";"", $value);
// возвращаем плюсы на место
$value = str_replace("\\+", "+", $value);
Оказывается браузер автоматически конвертирует символы юникода в сущности, если для них нет символа в кодировке страницы. Как и на этом сайте, собственно.
← →
Anatoly Podgoretsky © (2010-07-08 11:25) [3]
> ABC索DEF
Это не utf-8
← →
Anatoly Podgoretsky © (2010-07-08 11:25) [4]Кроме того это невозможно перекодировать в 1251
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2010.10.03;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.003 c