1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

проблема с кодировками

Тема в разделе "Web - программирование", создана пользователем -, 24 авг 2009.

  1. Гость

    Репутация:
    0
    На стороне клиента передается русский текст на сервер. Используется метод get.
    Печатаю принтом это поле - получаю "Перл" вместо "Перл".
    Стоит "Русский apache".
    Кодировка страницы charset=windows-1251
    На сервере такой код:
    Код:
    #!/usr/bin/perl
    use CGI qw(:standard);
    print "Content-type: text/plain; charset=windows-1251\n\n";
    $namereg=param('namereg');
    print $namereg;
    читал вот такое
    * Если ASCII код символа больше 32 и меньше 128, то он будет выдан без изменения.
    * если символ - пробел, то он заменится на "+" (плюсик, без кавычек) все остальное преобразуется в вид %xx, где xx -- шестнадцатеричный код символа. Если вам повезло и у вас "Русский apache", то он преобразует его в нормальную кодировку.
    http://www.linux.org.ru/books/perl-faq/ru-perl-faq-4.html

    Но процентиков у меня не выводит. Значит apache его преобразовал. Почему текст битый?


    Если напишу: print("Перл"); напечатает "Перл"
     
  2. Kmet

    Kmet Well-Known Member
    Java Team

    Репутация:
    0
    Регистрация:
    25 май 2006
    Сообщения:
    1.036
    Симпатии:
    8
    скорее всего передается с клиента не в windows-1251.

    http://unspecified.wordpress.com/2008/07/0...best-we-can-do/
     
  3. Гость

    Репутация:
    0
    кодировка на странице использовалась windows-1251
    попробывл перекодировать все в utf-8 не помогает

    Как это можно исправить?
     
  4. Kmet

    Kmet Well-Known Member
    Java Team

    Репутация:
    0
    Регистрация:
    25 май 2006
    Сообщения:
    1.036
    Симпатии:
    8
    в какой кодировке шлется реквест? какой браузер используете?
     
  5. ????

    ???? Гость

    Репутация:
    0
    >кодировка на странице использовалась windows-1251
    если передача идет с использованием XMLHttpRequest, то данные по умолчанию уйдут в utf (если мне не изменяет память)
     
  6. Гость

    Репутация:
    0
    Угу
    Вы угадали
    Я использую аякс и объект XMLHttpRequest.
    На сервер приходит utf-8.
    Я использовал перекодировку из utf-8 в win-1251. Работало. В файерфоксе нормально доходило - ие и хром почемуто печатали вопросики вместо каждого русского символа. Что мне не понятно.
    До этого у меня стоял вопрос или "русский апач" так разбирает символы после метода get (в utf-8), всегда или с клиента идет в утф.
    Для гарантии посмотрю сниффером, что идет "туда" и "сюда"
     
Загрузка...

Поделиться этой страницей