iconv проблема с заглавными буквами Р, Э, И

Автор Сапожник, 25 ноября 2012, 16:24:30

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Сапожник

В коде конвертируется строка из utf-8 в win-1251

$mes = "windows-1251: " . iconv("windows-1251","UTF-8",$mes) . "<br><br>";
При получение одной из заглавных букв Р, Э, И выскакивает ошибка:
8: iconv() [<a href='function.iconv'>function.iconv</a>]: Detected an illegal character in input string

погуглив нашел, что проблема не только у меня, но решений не нашел и в чем проблема не понял.

Это проблема настроек сервера, проблемы php(5.2.17) или сама ф-ция глючит?

Накидал такой текст, в котором при выводе видны проблемы.
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
    </head>
<body>
<?php
$mes 
"Информационно";
echo 
"UTF-8: " $mes "<br>";
echo 
$mes "windows-1251: " iconv("windows-1251","UTF-8",$mes) . "<br><br>";

$mes "информационно";
echo 
"UTF-8: " $mes "<br>";
echo 
$mes "windows-1251: " iconv("windows-1251","UTF-8",$mes) . "<br><br>";

$mes "Эльбрус";
echo 
"UTF-8: " $mes "<br>";
echo 
$mes "windows-1251: " iconv("windows-1251","UTF-8",$mes) . "<br><br>";

$mes "эльбрус";
echo 
"UTF-8: " $mes "<br>";
echo 
$mes "windows-1251: " iconv("windows-1251","UTF-8",$mes) . "<br><br>";

$mes "Рим";
echo 
"UTF-8: " $mes "<br>";
echo 
$mes "windows-1251: " iconv("windows-1251","UTF-8",$mes) . "<br><br>";

$mes "рим";
echo 
"UTF-8: " $mes "<br>";
echo 
$mes "windows-1251: " iconv("windows-1251","UTF-8",$mes) . "<br><br>";

$mes "Школа";
echo 
"UTF-8: " $mes "<br>";
echo 
$mes "windows-1251: " iconv("windows-1251","UTF-8",$mes) . "<br><br>";

$mes "школа";
echo 
"UTF-8: " $mes "<br>";
echo 
$mes "windows-1251: " iconv("windows-1251","UTF-8",$mes) . "<br><br>";

$mes "Тестирование";
echo 
"UTF-8: " $mes "<br>";
echo 
$mes "windows-1251: " iconv("windows-1251","UTF-8",$mes) . "<br><br>";

$mes "Проба пера";
echo 
"UTF-8: " $mes "<br>";
echo 
$mes "windows-1251: " iconv("windows-1251","UTF-8",$mes) . "<br><br>";

?>

</body>
</html>

==============================
Получаю:
UTF-8: Информационно
windows-1251: Р

UTF-8: информационно
windows-1251: РёРЅС,,ормационно

UTF-8: Эльбрус
windows-1251: Эльбрус

UTF-8: эльбрус
windows-1251: эльбрус

UTF-8: Рим
windows-1251: Р РёРј

UTF-8: рим
windows-1251: СЂРёРј

UTF-8: Школа
windows-1251: Школа

UTF-8: школа
windows-1251: школа

UTF-8: Тестирование
windows-1251: ТесС,ирование

UTF-8: Проба пера
windows-1251: Проба пера
Я хостюсь на Хвостинге :) 10 Гб (15 сайтов) ~ 30$/год
Рефка: http://hvosting.ua/

GeorG

А если экспериментальный файл, в ansi сохранить?
Как и положено ему быть...
Верстка тем по шаблону, их доработка/переработка, переделка тем с версии smf 1.1 на smf 2.0. Примеры работ - insidestyle.ru
Установка модов (заточка под ваш форум); Моды под заказ; Обновление форума; Правильный перенос; Удаление/лечение вирусов; Устранения ошибок.
Обращаться в ЛС
Мой форум
Модуль анти-спама CleanTalk, сам пользуюсь
Сервера которыми сам пользуюсь - cadedic.ru

Mr. Anviss

Сапожник,
iconv должна быть записана вот так: iconv("из какой кодировки","в какую кордировку",$mes).
В вашем случае вот так: iconv("utf-8","windows-1251",$mes)
Если в ответе будут вместо вменяемого текста знаки вопросов в ромбике то надо будет отредактировать кодировку на сервере.
Если сервер Apache то надо прописать директиву AddDefaultCharset off
off в AddDefaultCharset отменяет принудительную конвертацию сервером.
Ну в общем как то вот так.

Сапожник

GeorG, Mr. Anviss, спасибо за ответы.
Скорее всего, была проблема из-за неправильного написания параметров в iconv (как сегодня написал Mr. Anviss), хотя точно я в этом не уверен ;) Проблему решил, потом обнаружил еще несколько,... Вообщем, если хотите загадок, поставьте себе мод SimpleTwitter  knuppel
Я хостюсь на Хвостинге :) 10 Гб (15 сайтов) ~ 30$/год
Рефка: http://hvosting.ua/

Mr. Anviss

Цитата: Сапожник от 02 декабря 2012, 19:31:59GeorG, Mr. Anviss, спасибо за ответы.
Скорее всего, была проблема из-за неправильного написания параметров в iconv (как сегодня написал Mr. Anviss), хотя точно я в этом не уверен  Проблему решил, потом обнаружил еще несколько,... Вообщем, если хотите загадок, поставьте себе мод SimpleTwitter 
Лучше уж Вы к нам :) html5_upload_files