Подскажите функцию @ DeForum.ru
DeДверь  
Логин:  
Пароль:  
  Автологин  
   
Разместить рекламу
Письмо админу
Правила | FAQ | *Поиск | Наша команда | Регистрация | Вход
 
 
 Страница 1 из 1 [ Сообщений: 5 ] 
*   Список форумов / Начинка и техника / Программирование для WWW » ответить » создать топик « | »
Автор Сообщение
gregzem Муж.
новый человек
2
Сообщения: 252
Зарегистрирован: 29.04.03
Заголовок сообщения: Подскажите функцию
Сообщение Добавлено: 20 Декабрь 2005, 02:22:01 
Есть ли на PHP стандартная функция для конвертирования UTF-8 строки в html-friendly UCS-2 представление?

То есть из UTF-8 в вид &#XXXX;&#XXXX;

Задача возникла из-за следующих обстоятельств: кодировка веб-сервера UTF-8. Чел в <TEXTAREA> формы может писать на русском, французском, китайском и английском. Нужно, чтобы в БД это все сохранялось в виде &#NNNN; для всех неаглийских букв. Можно, конечно, использовать bin2hex для преобразования и хранить в БД в таком виде, но хочется все-таки реализовать вариант с &#….;

Thanx
gregzem Муж.
новый человек
2
Сообщения: 252
Зарегистрирован: 29.04.03
Сообщение Добавлено: 20 Декабрь 2005, 03:13:12 
Небольшое дополнение.

Попробовал следующее:

ucs2html(mb_convert_encoding($str, "UCS-2LE", "UTF-8"))

Все бы ничего, но при попадании в строке $str русских букв "Г", "Д" и некоторых других, данная конструкция сходит с ума и выводит бред.
gregzem Муж.
новый человек
2
Сообщения: 252
Зарегистрирован: 29.04.03
Сообщение Добавлено: 22 Декабрь 2005, 03:46:35 
А ларчик просто (ломом) открывался...так сказать для потомков:

Код:
function mds_UCS2HTML($par_InputStr) {

   $par_InputStr = trim($par_InputStr);
   $par_InputStrLen = strlen($par_InputStr);

   $l_HTML = '';

   for($i = 0; $i < $par_InputStrLen; $i +=2 ) {
       $l_ValueChar = ord($par_InputStr[$i]);
       $l_LeadingChar = ord($par_InputStr[$i+1]);

       if ($l_LeadingChar < 1) {
          if (($l_ValueChar > 31) && (($l_ValueChar <126))) {
             $l_HTML .= $par_InputStr[$i];
          } else {
             $l_HTML .= '&#'.$l_ValueChar.";";
          }
       }
             else
          $l_HTML.= '&#'.hexdec(dechex($l_LeadingChar).sprintf("%02s",dechex($l_ValueChar))).';';
   }

   return $l_HTML;
 }


    $text = mds_UCS2HTML(mb_convert_encoding($text, "UCS-2LE", "UTF-8"));

Kurilshik
Goldmember
142
Сообщения: 12797
Зарегистрирован: 18.10.04
Откуда: Кожаное кресло
Сообщение Добавлено: 22 Декабрь 2005, 12:57:53 
оффтопик:
Сам спросил, сам ответил :laugh:

_________________

Портфолио - ЖЖ - Кулинарные рецепты - Блог о дизайне, уроки фотошоп

icq: 295346452 | Почта: info()alexey-popov.com

.
gregzem Муж.
новый человек
2
Сообщения: 252
Зарегистрирован: 29.04.03
Сообщение Добавлено: 22 Декабрь 2005, 21:01:00 
оффтопик:
наблюдательный...
*   Список форумов / Начинка и техника / Программирование для WWW « | » » ответить » создать топик
 Страница 1 из 1 [ Сообщений: 5 ] 
Показать сообщения за:   Поле сортировки  
Найти:
Перейти:  
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.
cron


ООО ДеФорум
При использовании материалов сайта ссылка на DeForum.ru — обязательна.
Проект Павла Батурина ©2001-2077; // Powered by phpBB © 2013 phpBB Group
Rambler's Top100