PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (1): [1]

> Найдено сообщений: 2
Mad Doc Отправлено: 29 Октября, 2012 - 10:57:20 • Тема: Проблемы с ANSII кодировкой и функцией chr • Форум: Кодировки и все смежное

Ответов: 3
Просмотров: 2243
Мелкий пишет:
PHP:
скопировать код в буфер обмена
  1. $output = html_entity_decode(preg_replace('~&#(\d+)~', '&#$1;',$input),ENT_QUOTES, 'UTF-8');

?


Благодарю, поторопился просить помощи, нашел рабочий вариант:
PHP:
скопировать код в буфер обмена
  1.  
  2. mb_convert_encoding('&#' . intval($char) . ';', 'UTF-8', 'HTML-ENTITIES');

Так все работает )))
(Добавление)
Runet4ik пишет:
Попробуй для поля в бд задать кодировку cp1251_general_ci

Да не, она в БД в таком виде и хранится, в ANSI - символах.
помогла функция
mb_convert_encoding
Mad Doc Отправлено: 29 Октября, 2012 - 10:36:35 • Тема: Проблемы с ANSII кодировкой и функцией chr • Форум: Кодировки и все смежное

Ответов: 3
Просмотров: 2243
Доброго времени суток всем! Вобщем, имею проблему с функцией chr.
Есть некоторая строка в ANSII кодировке:
CODE (htmlphp):
скопировать код в буфер обмена
  1. &#1086&#1089&#1100&#32&#82&#101&#97&#108&#44&#32&#57&#46&#48&#48&#34&#49&#50&#98&#111&#108&#116&#32&#82&#71&#44&#32&#1044&#1080&#1072&#1084&#1077&#1090&#1088&#32&#1096&#1077&#1089&#1090&#1077&#1088&#1085&#1080&#32&#51&#48&#46&#53&#40&#49&#46&#50&#48&#34&#41&#44&#32&#1082&#1086&#1083&#1083&#1080&#1095&#1077&#1089&#1090&#1074&#1086&#32&#1096&#1083&#1080&#1094&#32&#45&#32&#50&#56&#44&#32&#1087&#1077&#1088&#1077&#1076&#1072&#1090&#1086&#1095&#1085&#1086&#1077&#32&#1095&#1080&#1089&#1083&#1086&#32&#45&#32&#1074&#1089&#1077

В таком виде строка хранится в бд. Требуется преобразовать ее в "читабельный", чтобы превести некоторые преобразования, а затем вернуть в БД.
делаю так:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. $str="&#1086&#1089&#1100&#32&#82&#101&#97&#108&#44&#32&#57&#46&#48&#48&#34&#49&#50&#98&#111&#108&#116&#32&#82&#71&#44&#32&#1044&#1080&#1072&#1084&#1077&#1090&#1088&#32&#1096&#1077&#1089&#1090&#1077&#1088&#1085&#1080&#32&#51&#48&#46&#53&#40&#49&#46&#50&#48&#34&#41&#44&#32&#1082&#1086&#1083&#1083&#1080&#1095&#1077&#1089&#1090&#1074&#1086&#32&#1096&#1083&#1080&#1094&#32&#45&#32&#50&#56&#44&#32&#1087&#1077&#1088&#1077&#1076&#1072&#1090&#1086&#1095&#1085&#1086&#1077&#32&#1095&#1080&#1089&#1083&#1086&#32&#45&#32&#1074&#1089&#1077";
  3.  
  4. $str_array= explode("&#", $str);
  5.  
  6. foreach( $str_array as $char) {
  7. echo chr($char);
  8.  
  9. }

В результате на выходе получаю:
CODE (html):
скопировать код в буфер обмена
  1. >AL Real, 9.00"12bolt RG, 80<5B@ H5AB5@=8 30.5(1.20"), :>;;8G5AB2> H;8F - 28, ?5@540B>G=>5 G8A;> - 2A5

А должно получится
CODE (html):
скопировать код в буфер обмена
  1. ось Real, 9.00"12bolt RG, Диаметр шестерни 30.5(1.20"), колличество шлиц - 28, передаточное число - все

Как видно, английские символы и цифры перекодируются, как видно, нормально, а кирилица - нет. В чем проблема, и как ее победить???

Подобных строк в БД - over9000, посему требуется автоматизировать процесс их конвертации.
Если подобная тема была, просьба не пинать, а ткнуть в ссылку, ибо поиском ничего не ищется.
Спасибо.

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB