Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   Внутренние переменные кодировки (http://www.flasher.ru/forum/showthread.php?t=98904)

Cheburah 24.07.2007 16:31

Внутренние переменные кодировки
 
На что влияют данные внутренние переменные:
Код:

input_encoding
output_encoding
internal_encoding

устанавливаемые функцией iconv_set_encoding ( string type, string charset )?
Т.е. если Я читаю в php файл в кодировке win-1251, а ответ мне надо дать в UTF-8, а серверные установки этих переменных равны ISO-8859-1, то чтобы в UTF-8 получить нормальные русские буковки, достаточно ли этого:
Код:

iconv_set_encoding("internal_encoding", "WINDOWS-1251");
iconv_set_encoding("input_encoding", "WINDOWS-1251");
iconv_set_encoding("output_encoding", "UTF-8");

или нужно написать по-другому, или необходимо использовать iconv ( string in_charset, string out_charset, string str )?

Киргиз 24.07.2007 19:33

Если ты хочешь это получить себе во флэш, то позаботься зараннее чтобы данные были закодированы в юникоде. С UTF у php до сих пор проблемы, чтобы кто ни говорил. Тем более в раних версиях пхп

Киргиз 24.07.2007 19:40

Вот тебе тупая спрака из ОФИЦИАЛЬНОГО мануала по пхп:
Коды функции convert_cyr_string (для преобразования кирилицы из одной кодировки в другую)
a,d x-cp866
i iso8859-5
k koi8-r
m x-mac-cyrollic
w windows windows-1251
как видиш про юникод нет ни слова

etc 24.07.2007 19:46

Чем iconv не устраивает?

Cheburah 24.07.2007 21:57

Тем, что она не работала, ковырялся сутки без перерыва. Только что наткнулся на такое явление - Сейчас в php стоит
Код:

iconv("WINDOWS-1251", "UTF-8","<main>".$rez."</main>");
Переводит русский текст в UTF-8 только если перед русскими символами стоит символ из первой половины ASCII, если строка чисто русская - выдает пустую строку, т.е. от машаANDпаша в WINDOWS-1251 в UTF-8 конвертнется только ANDпаша. Может быть кому-то известно в чем тут дело?

Киргиз 24.07.2007 23:03

Чебурашка, пиши на форуме phpclub.ru. Если бы у тебя была затырка в связке Flash-PHP, то я бы тебе подсказал... а так... пиши в русский пхп

drwhite 25.07.2007 01:37

А какой версии пхп?

в 5,1,6 все работает без проблем

Код:

class XXX
{
public static function advIconv($charset_from = false, $charset_to = false, $data = null)
{
       
        if ( !$charset_from  || !$charset_to)
        {
                return $data;
                //return false;
        };//
       
        if (is_array($data))
        {
                $res = Array();
                foreach($data as $key => $line)
                {
                        $res[$key] = self::advIconv($charset_from, $charset_to, $line);
                };//
                return $res;
        }
        else if (is_string($data) || is_integer($data) || is_double($data))
        {
                return iconv($charset_from, $charset_to, $data);
        };//
}//function

}//class



Часовой пояс GMT +4, время: 22:50.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.