Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.02.21;
Скачать: CL | DM;

Вниз

Казахский в PHP   Найти похожие ветки 

 
Polkin ©   (2009-12-11 10:18) [0]

Доброе утро!

Парсю казахский сайт.

Он в кодировке UTF-8. Мне же надо перевести в windows-1251.

Делаю так -

$text = iconv("UTF-8", "WINDOWS-1251", $text);

Все бы хорошо, но при встрече в тексте первого казахского символа. строка обрезается.

Например, если конвертить это

Тектс на русском, Қатысуға және баға ұсыныстарын ұсынуға шақырамыз. Потом опять текст на русском

то после конвертирования у меня будет только это

Тектс на русском,

Странно все это... Помощи прошу у вас.


 
Polkin ©   (2009-12-11 10:33) [1]

Эх....сам спросил - сам ответил... А вдруг кому поможет =)

function utf8_win ($s){
$out = "";
$c1 = "";
$byte2 = false;
 for ($c = 0; $c < strlen($s); $c++){
 $i = ord($s[$c]);
   if ($i <= 127) {
    $out .= $s[$c];
   }
   if ($byte2) {
  $new_c2 = ($c1 & 3) * 64 + ($i & 63);
  $new_c1 = ($c1 >> 2) & 5;
  $new_i = $new_c1 * 256 + $new_c2;
  if ($new_i == 1025){
   $out_i = 168;
  }else{
   if ($new_i == 1105){
    $out_i = 184;
   }else {
    $out_i = $new_i - 848;
   }
  }
  $out .= chr($out_i);
  $byte2 = false;
 }
 if (($i >> 5) == 6) {
  $c1 = $i;
  $byte2 = true;
 }
}
return $out;
}


 
test ©   (2009-12-11 14:53) [2]

В Казахстане с кодировками полный швах, встречаются 1252 и 1253. Официально зарегистрирована только кодировка шестсот какая то для Линуха. Лучше не переводить с UTF-8, он показывает любой язык, а в 1251 половина свои букавки дорогие не увидят.


 
blackman ©   (2009-12-11 21:48) [3]

Iconv не лучший вариант!
Из UTF8 в cp1251, из cp1251 в utf8
http://articles.org.ru/cn/showdetail.php?cid=8527

Можно проверить символы по таблице
Кодировка Windows-1251
http://articles.org.ru/cn/showdetail.php?cid=8509



Страницы: 1 вся ветка

Текущий архив: 2010.02.21;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.016 c
15-1260708905
SergP
2009-12-13 15:55
2010.02.21
Как узнать Product key установленной винды XP


15-1258553129
test
2009-11-18 17:05
2010.02.21
Коллайдер


2-1261380806
JohnKorsh
2009-12-21 10:33
2010.02.21
Вопрос по компоненту UDPServer (INDY).


2-1261424330
Drowsy
2009-12-21 22:38
2010.02.21
ComponentName.


2-1261143805
TStas
2009-12-18 16:43
2010.02.21
Ошибка создания MDI формы