Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: 3 символа в UTF-8

Сообщения:  [1-10]    [11-20]  [21-30] 

 
 автор: levsha   (25.03.2011 в 16:27)   письмо автору
 
   для: chexov   (10.03.2011 в 08:19)
 

Обязательно использовать iconv?
Попробуйте расширение mb_string.
Как использовать.
В начале скрипта укажите внутреннюю кодировку, тогда в php все принятые данные и заголовки (post, get и т.д.) будут в этой кодировке - mb_internal_encoding('UTF-8');
Сам скрипт должен быть в формате UTF-8 и без BOM
Перекодировать данные можно так: mb_convert_encoding('строка', 'другая_кодировка', 'текущая кодировка'). Последний параметр не обязателен, используется значение mb_internal_encoding.

  Ответить  
 
 автор: cheops   (24.03.2011 в 10:13)   письмо автору
 
   для: chexov   (24.03.2011 в 10:04)
 

Рассматривал :))), даже начал, но до конца пока не довел...

  Ответить  
 
 автор: chexov   (24.03.2011 в 10:04)   письмо автору
 
   для: cheops   (17.03.2011 в 12:37)
 

Уважаемый Хеопс, простите за мое нахальство, вы не рассматривали возможность написания функции?

  Ответить  
 
 автор: chexov   (17.03.2011 в 14:00)   письмо автору
 
   для: cheops   (17.03.2011 в 12:37)
 

Очень прошу вас помочь мне с функцией, думаю она пригодится в дальнейшем не только мне:) буду ждать с нетерпением

  Ответить  
 
 автор: cheops   (17.03.2011 в 12:37)   письмо автору
 
   для: chexov   (17.03.2011 в 02:07)
 

Эта функция применялась давно, когда еще iconv() не всеми серверами поддерживался. Она предназначена для штатной работы, когда вы имеете дело с 2 байтами на символ, в крокозябликах в UTF-8 у вас их будет 4, их нужно исследовать и подставить (я попробую такую функцию написать, но не обещаю, что смогу выделить время на это).

  Ответить  
 
 автор: chexov   (17.03.2011 в 02:07)   письмо автору
 
   для: cheops   (16.03.2011 в 11:57)
 

эта функция не срабатывает:(из P?P?P возвращает P?P?P подскажите как переработать?

писал функцию (в посте 473263) но там проблема с буквами И,Р,Э

  Ответить  
 
 автор: cheops   (16.03.2011 в 11:57)   письмо автору
 
   для: chexov   (16.03.2011 в 03:51)
 

Первый вариант возможен.
>Страница постоянно в UTF-8
Вот из-за этого у вас вряд ли что получится, допустим пользователь доносит строку вида
P?P?P

Причем вместо знаков вопроса и P - там настоящие символы, которые означают слово МИР в кодировке UTF-8, но которая отобразилась в однобайтовой кодировке Win-1251. Как только эта строка попадет в с реду UTF-8, она под каждый символ выделит свое количество байт, т.е. вместо 6 символов, которые видны искаженно в Win-1251, в UTF-8 под эту строку будет отведено условно говоря 12 символов, на самом деле меньше, но суть в том, что она будет их воспринимать как отделные символы и ни за что два соседних симола не склеет в одну строку. Т.е. iconv() для этой задачи не подходит, вам придется писать свои функции.

У вас ведь всегда будет русский язык? Тогда вам нужны будут функции вида (функцию нужно будет перерабатывать)
<?php
function utf8ToWin1251($s)
{
    
$s=str_replace("\xD0\xB0","а",$s);  $s=str_replace("\xD0\x90","А",$s);
    
$s=str_replace("\xD0\xB1","б",$s);  $s=str_replace("\xD0\x91","Б",$s);
    
$s=str_replace("\xD0\xB2","в",$s);  $s=str_replace("\xD0\x92","В",$s);
    
$s=str_replace("\xD0\xB3","г",$s);  $s=str_replace("\xD0\x93","Г",$s);
    
$s=str_replace("\xD0\xB4","д",$s);  $s=str_replace("\xD0\x94","Д",$s);
    
$s=str_replace("\xD0\xB5","е",$s);  $s=str_replace("\xD0\x95","Е",$s);
    
$s=str_replace("\xD1\x91","ё",$s);  $s=str_replace("\xD0\x81","Ё",$s);
    
$s=str_replace("\xD0\xB6","ж",$s);  $s=str_replace("\xD0\x96","Ж",$s);
    
$s=str_replace("\xD0\xB7","з",$s);  $s=str_replace("\xD0\x97","З",$s);
    
$s=str_replace("\xD0\xB8","и",$s);  $s=str_replace("\xD0\x98","И",$s);
    
$s=str_replace("\xD0\xB9","й",$s);  $s=str_replace("\xD0\x99","Й",$s);
    
$s=str_replace("\xD0\xBA","к",$s);  $s=str_replace("\xD0\x9A","К",$s);
    
$s=str_replace("\xD0\xBB","л",$s);  $s=str_replace("\xD0\x9B","Л",$s);
    
$s=str_replace("\xD0\xBC","м",$s);  $s=str_replace("\xD0\x9C","М",$s);
    
$s=str_replace("\xD0\xBD","н",$s);  $s=str_replace("\xD0\x9D","Н",$s);
    
$s=str_replace("\xD0\xBE","о",$s);  $s=str_replace("\xD0\x9E","О",$s);
    
$s=str_replace("\xD0\xBF","п",$s);  $s=str_replace("\xD0\x9F","П",$s);
    
$s=str_replace("\xD1\x80","р",$s);  $s=str_replace("\xD0\xA0","Р",$s);
    
$s=str_replace("\xD1\x81","с",$s);  $s=str_replace("\xD0\xA1","С",$s);
    
$s=str_replace("\xD1\x82","т",$s);  $s=str_replace("\xD0\xA2","Т",$s);
    
$s=str_replace("\xD1\x83","у",$s);  $s=str_replace("\xD0\xA3","У",$s);
    
$s=str_replace("\xD1\x84","ф",$s);  $s=str_replace("\xD0\xA4","Ф",$s);
    
$s=str_replace("\xD1\x85","х",$s);  $s=str_replace("\xD0\xA5","Х",$s);
    
$s=str_replace("\xD1\x86","ц",$s);  $s=str_replace("\xD0\xA6","Ц",$s);
    
$s=str_replace("\xD1\x87","ч",$s);  $s=str_replace("\xD0\xA7","Ч",$s);
    
$s=str_replace("\xD1\x88","ш",$s);  $s=str_replace("\xD0\xA8","Ш",$s);
    
$s=str_replace("\xD1\x89","щ",$s);  $s=str_replace("\xD0\xA9","Щ",$s);
    
$s=str_replace("\xD1\x8A","ъ",$s);  $s=str_replace("\xD0\xAA","Ъ",$s);
    
$s=str_replace("\xD1\x8B","ы",$s);  $s=str_replace("\xD0\xAB","Ы",$s);
    
$s=str_replace("\xD1\x8C","ь",$s);  $s=str_replace("\xD0\xAC","Ь",$s);
    
$s=str_replace("\xD1\x8D","э",$s);  $s=str_replace("\xD0\xAD","Э",$s);
    
$s=str_replace("\xD1\x8E","ю",$s);  $s=str_replace("\xD0\xAE","Ю",$s);
    
$s=str_replace("\xD1\x8F","я",$s);  $s=str_replace("\xD0\xAF","Я",$s);
    return 
$s;
}
?>

  Ответить  
 
 автор: chexov   (16.03.2011 в 03:51)   письмо автору
 
   для: cheops   (15.03.2011 в 11:49)
 

первый вариант:
Вводим нормальный текст, выбираю из выпадающего списка кодировку и нужно чтобы показало как будет выглядеть текст в выбранной кодировке

второй вариант:
Вводим крокозяблики(UTF-8) выбираем из выпадающего списка кодировку (например Win1251) на выходе получаем нормальный текст (Расшифровываем)

Эти два варианта можно как то в один сделать? Страница постоянно в UTF-8

  Ответить  
 
 автор: cheops   (15.03.2011 в 11:49)   письмо автору
 
   для: chexov   (15.03.2011 в 04:37)
 

Вводятся крокозяблики? Т.е. вы хотите их расшифровать? Или вводится нормальный текст и вы хотите показать как он будет выглядить в разных кодировках, если на странице выбрана одна конекретная?

  Ответить  
 
 автор: chexov   (15.03.2011 в 04:37)   письмо автору
 
   для: cheops   (14.03.2011 в 12:59)
 

Именно хочу отображать результаты введеной (через форму) информации в разных кодировках

  Ответить  

Сообщения:  [1-10]    [11-20]  [21-30] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования