Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   как конвертировать текст в ISO-8859-1 ? (https://forum.antichat.xyz/showthread.php?t=145070)

Дикс 02.10.2009 09:07

как конвертировать текст в ISO-8859-1 ?
 
файл в UTF-8:

PHP код:

$text "русский в утф";
header('Content-type: text/html; charset=ISO-8859-1');
echo 
"<meta http-equiv='content-type' content='text/html; charset=ISO-8859-1' />";
echo 
mb_convert_encoding($text'ISO-8859-1''UTF-8'); 

выводит кашу
что не так?
в браузере сайты с ISO-8859-1 отображаются нормально

krypt3r 02.10.2009 09:43

И где же в исо 8859-1 кириллица?
ISO 8859-5

Дикс 02.10.2009 10:18

но форум то в 8859-1 и нормально все отображает

а так не канает:
PHP код:

$text "русски в утф";
header('Content-type: text/html; charset=ISO-8859-5');
echo 
"<meta http-equiv='content-type' content='text/html; charset=ISO-8859-5' />";
echo 
mb_convert_encoding($text"ISO-8859-5"); 


Дикс 02.10.2009 10:48

из cp-1251 в ISO-8859-5 нормально конвертит
а из utf-8 в ISO-8859-5 --- нет

krypt3r 02.10.2009 10:52

В последней строке кода потерялся UTF-8

Дикс 02.10.2009 11:15

это необязательный параметр

krypt3r 02.10.2009 11:37

Может, и необязательный, но без него не будет работать
PHP код:

  $text 'русский в утф';
  
header ('Content-type: text-html; charset=ISO-8859-5');
  echo 
"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-5\">";
  echo 
$text "<br>";
  echo 
mb_convert_encoding ($text'ISO-8859-5''auto'); 

ЗЫ. Необходимости юзать малораспространенную кодировку в рунете вообще не вижу

Дикс 02.10.2009 11:39

тем не менее она есть

Дикс 02.10.2009 12:23

объясните пожалуйста, как тогда я размещаю руками сообщение нормальными русскими буквами на форум, у которого кодировка ISO-8859-1 ? а если скриптом - то всякая хрень

Дикс 02.10.2009 12:55

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

Doom123 02.10.2009 14:28

попробуй http://il.php.net/manual/en/function.iconv.php

Дикс 02.10.2009 15:06

$title = iconv("UTF-8", "ISO-8859-5//IGNORE", $title);
$message = iconv("UTF-8", "ISO-8859-5//IGNORE", $message);

c ISO-8859-5 ещё при выводе на экран из файла в utf-8 - видно русский текст
а при отправке на форуме закорючки

а если ISO-8859-1 - то вообще строки из одних пробелов

Doom123 02.10.2009 17:03

посмотри в каком виде отправляются данные .. у меня както была трабла что при отрпаке из формы текст отсылался ввиде html эквевилентов .. тоесть вместо букв были ихние хтмл коды и при выводи была трабла ... или же кодировка самого файла со скриптом не соответствует .. хз

Дикс 02.10.2009 17:48

я вот и смотрю что браузер отправляет как раз html-эквиваленты

Дикс 02.10.2009 18:23

***! я все-таки сделал это!

PHP код:


function unicode_mk_cyr($str) {
     
$encode "";

     for (
$ii=0;$ii<strlen($str);$ii++) {
         
$xchr=substr($str,$ii,1);
         if (
ord($xchr)>191) {
             
$xchr=ord($xchr)+848;
             
$xchr="&#" $xchr ";";
         }
         if(
ord($xchr) == 129) {
               
$xchr "Ѓ";
         }
         if(
ord($xchr) == 163) {
               
$xchr "Ј";
         }
         if(
ord($xchr) == 138) {
               
$xchr "Љ";
         }
         if(
ord($xchr) == 140) {
               
$xchr "Њ";
         }
         if(
ord($xchr) == 143) {
               
$xchr "Џ";
         }
         if(
ord($xchr) == 141) {
               
$xchr "Ќ";
         }
         if(
ord($xchr) == 189) {
               
$xchr "Ѕ";
         }

         if(
ord($xchr) == 188) {
               
$xchr "ј";
         }
         if(
ord($xchr) == 131) {
               
$xchr "ѓ";
         }
         if(
ord($xchr) == 190) {
               
$xchr "ѕ";
         }
         if(
ord($xchr) == 154) {
               
$xchr "љ";
         }
         if(
ord($xchr) == 156) {
               
$xchr "њ";
         }
         if(
ord($xchr) == 159) {
               
$xchr "џ";
         }
         if(
ord($xchr) == 157) {
               
$xchr "ќ";
         }
         
$encode=$encode $xchr;
   }
     return 
$encode;
}
$title urlencode(unicode_mk_cyr($title));
$message urlencode(unicode_mk_cyr($message)); 

функцию взял из комментов php.net

Doom123 02.10.2009 18:26

это не выход .. такое происходит когда вводимы текст не соответствует кодировке страницы (или чтото типо того) легче перевести всё в ut8 разве нет?


Время: 01:03