Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.007 c
2-1278654940
linuxoid
2010-07-09 09:55
2010.10.03
как указать количество пакетов tidicmpclient?


15-1278525894
Kerk
2010-07-07 22:04
2010.10.03
Открыл для себя волынку


2-1279085600
JohnKorsh
2010-07-14 09:33
2010.10.03
Не поможет ли кто кодом по RAVE?


15-1278448186
Юрий
2010-07-07 00:29
2010.10.03
С днем рождения ! 7 июля 2010 среда


3-1245770351
ancot
2009-06-23 19:19
2010.10.03
TADOTable + Post = Exception




   Наверх