The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Определение кодировки в которой были отправлены данные из HTML формы. (charset perl cgi web)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: charset, perl, cgi, web,  (найти похожие документы)
Date: Tue, 27 Aug 2002 13:37:54 +0000 (UTC) From: Spartak Radchenko <spartak@aif.ru> Newsgroups: fido7.ru.unix Subject: Определение кодировки в которой были отправлены данные из HTML формы. VW> Фигня в том, что наиболее распространенный браузер (IE) хреново понимает VW> кодировку, отличную от windows-1251 В ФОРМАХ. А именно, в зависимости от VW> некоторых привходящих обстоятельств, он решает что не может VW> отконвертировать. И ни слова не говоря (а мог бы сказать магическое VW> слово Content-Type: application/x-url-encoded; charset=windows-1251) VW> шлет введенные юзером данные на сервер в той кодировке, в которой юзер VW> их ввел. Есть такая буква в этом слове. Вот только Русский Апач тут не поможет. У нас в формах ввода есть скрытое поле, по которому скрипт на сервере определяет, в какой же кодировке пришла эта фигня от клиента. Рекомендую: <input type="Hidden" name="EncKey" value="я"> if(Ord($EncKey) == 0xd1) DecodeInput("k"); /* КОИ */ if(Ord($EncKey) == 0xff) DecodeInput("w"); /* Win */ if(Ord($EncKey) == 0xdf) DecodeInput("m"); /* Mac */ if(Ord($EncKey) == 0xef) DecodeInput("d"); /* DOS */ К сожалению, кодировку ISO по букве "я" не отловишь, но принцип ясен. VW> При условии что все документы хранятся на сервере в VW> кодировке windows-1251 и все скрипты которые что-то делают с текстом VW> работают с локалью ru_RU.CP1251. Ибо более другие браузеры, работающие в VW> системах, где родная кодировка koi8-r в таких глюках не замечены. А как насчёт IE под Маком? Нет, Win-1251 тоже не панацея. Лично я за КОИ, не люблю файлы в левых кодировках на сервере.

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

Обсуждение [ RSS ]
  • 1, Женя (??), 22:57, 25/11/2005 [ответить]  
  • +/
    <input type="Hidden" name="EncKey" value="я">

            if(Ord($EncKey) == 0xd1) DecodeInput("k"); /* КОИ */
            if(Ord($EncKey) == 0xff) DecodeInput("w"); /* Win */
            if(Ord($EncKey) == 0xdf) DecodeInput("m"); /* Mac */

    DecodeInput - что это за функция???
            if(Ord($EncKey) == 0xef) DecodeInput("d"); /* DOS */

     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру