Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.10.03;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.006 c
3-1245770351
ancot
2009-06-23 19:19
2010.10.03
TADOTable + Post = Exception


15-1278401604
Kolan
2010-07-06 11:33
2010.10.03
Обсуждение автоматического определения устройства


2-1278360825
AKE
2010-07-06 00:13
2010.10.03
Как отключить оптимизацию...


2-1278083537
AKE
2010-07-02 19:12
2010.10.03
Как скопировать один массив массивов в другой?


15-1278574649
Polkin
2010-07-08 11:37
2010.10.03
RTF-картинка (PHP)