|
|
|
|
|
для: 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. | |
|
|
|
|
|
|
|
для: chexov
(24.03.2011 в 10:04)
| | Рассматривал :))), даже начал, но до конца пока не довел... | |
|
|
|
|
|
|
|
для: cheops
(17.03.2011 в 12:37)
| | Уважаемый Хеопс, простите за мое нахальство, вы не рассматривали возможность написания функции? | |
|
|
|
|
|
|
|
для: cheops
(17.03.2011 в 12:37)
| | Очень прошу вас помочь мне с функцией, думаю она пригодится в дальнейшем не только мне:) буду ждать с нетерпением | |
|
|
|
|
|
|
|
для: chexov
(17.03.2011 в 02:07)
| | Эта функция применялась давно, когда еще iconv() не всеми серверами поддерживался. Она предназначена для штатной работы, когда вы имеете дело с 2 байтами на символ, в крокозябликах в UTF-8 у вас их будет 4, их нужно исследовать и подставить (я попробую такую функцию написать, но не обещаю, что смогу выделить время на это). | |
|
|
|
|
|
|
|
для: cheops
(16.03.2011 в 11:57)
| | эта функция не срабатывает:(из P?P?P возвращает P?P?P подскажите как переработать?
писал функцию (в посте 473263) но там проблема с буквами И,Р,Э | |
|
|
|
|
|
|
|
для: chexov
(16.03.2011 в 03:51)
| | Первый вариант возможен.
>Страница постоянно в UTF-8
Вот из-за этого у вас вряд ли что получится, допустим пользователь доносит строку вида
Причем вместо знаков вопроса и 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;
}
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(15.03.2011 в 11:49)
| | первый вариант:
Вводим нормальный текст, выбираю из выпадающего списка кодировку и нужно чтобы показало как будет выглядеть текст в выбранной кодировке
второй вариант:
Вводим крокозяблики(UTF-8) выбираем из выпадающего списка кодировку (например Win1251) на выходе получаем нормальный текст (Расшифровываем)
Эти два варианта можно как то в один сделать? Страница постоянно в UTF-8 | |
|
|
|
|
|
|
|
для: chexov
(15.03.2011 в 04:37)
| | Вводятся крокозяблики? Т.е. вы хотите их расшифровать? Или вводится нормальный текст и вы хотите показать как он будет выглядить в разных кодировках, если на странице выбрана одна конекретная? | |
|
|
|
|
|
|
|
для: cheops
(14.03.2011 в 12:59)
| | Именно хочу отображать результаты введеной (через форму) информации в разных кодировках | |
|
|
| |
|