Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

функция iconv

347
16 августа 2007 года
Maniak
319 / / 05.11.2005
народ помогите преобразовать строку из DOS-овской кодировки в виндозную...
функция iconv что то не помогает, может я ее не правильно использую?
 
Код:
iconv("DOS","windows-1251",$str);


в скрипте стоит:
 
Код:
<html>
<head>
<title>script</title>
</head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
...
251
17 августа 2007 года
SkyMаn
1.7K / / 31.07.2007
некоторые символы через Iconv неправильно конвертируются. Например тире (long dash -- chr(150) конвертирует на 0, а после этого символа Iconv просто прекращает свою работу и остальные символы не конвертирует. Эта проблема есть в интервале 128-159,163,165-167,169,171-174,177-182,187-190 в 1251
Код:
//$text  -  input text in windows-1251
//$cout  -  output text in 866 (cp866, dos ru ascii)
 
for($i=0;$i<strlen($text);$i++) {
    $ord=ord($text[$i]);
    if($ord>=192&&$ord<=239) $cout.=chr($ord-64);
    elseif($ord>=240&&$ord<=255) $cout.=chr($ord-16);
    elseif($ord==168) $cout.=chr(240);
    elseif($ord==184) $cout.=chr(241);
    elseif($ord==185) $cout.=chr(252);
    elseif($ord==150||$ord==151) $cout.=chr(45);
    elseif($ord==147||$ord==148||$ord==171||$ord==187) $cout.=chr(34);
    elseif($ord>=128&&$ord<=190) $i=$i; //нет представления данному символу
    else $cout.=chr($ord);
}

ЗЫ. Имхо, извращение, и медленно, но как говорится, выбирать вам
2
17 августа 2007 года
squirL
5.6K / / 13.08.2003
в юолее-менее свежих версиях утилиты iconv есть ключик, ЕМНИП -c, указав который, можно заставить iconv не вываливаться при "встрече" с непонятным символом. может и для функции какой параметр есть?
347
17 августа 2007 года
Maniak
319 / / 05.11.2005
надо было просто писать не DOS, а вот так
 
Код:
iconv("cp866","windows-1251",$str);

а это ззначения всех кодировок:
Код:
Арабский (dos)  DOS - 720  
Арабский (ISO)  iso-8859-6 
Арабский (Mac)  x-mac-arabic   
Арабский (Windows)  windows-1256   
Балтийские языки (DOS)   ibm775 
Балтийские языки (ISO)   iso-8859-4 
Греческий (DOS)    ibm737 
Греческий (ISO)    iso-8859-7 
Греческий (Mac)    x-mac-greek
Греческий (Windows)    windows-1252   
Греческий современный (DOS) ibm869 
Европейский языки   x-Europa   
Западноевропейские языки (DOS)   ibm850 
Западноевропейские языки (ISO)   iso-8859-1 
Западноевропейские языки (Mac)   macintosh  
Западноевропейские языки (Windows)   windows-1252   
Кириллица (DOS)    cp866  
Кириллица (ISO)    iso-8859-5 
Кириллица (KOI8-R) koi8-r 
Кириллица (KOI8-U) koi8-u 
Кириллица (Mac)    x-mac-cyrillic 
Кириллица (Windows)    windows-1251   
Турецкий (DOS)  ibm857 
Турецкий (ISO)  iso-8859-9 
Турецкий (Mac)  x-mac-turkish  
Турецкий (Windows)  windows-1254
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог