• Codeby web-security - Курс "Тестирование Веб-Приложений на проникновение с нуля" от команды codeby. Общая теория, подготовка рабочего окружения, пассивный фаззинг и фингерпринт, Активный фаззинг, Уязвимости, Пост-эксплуатация, Инструментальные средства, Social Engeneering и многое другое. Подробнее ...

  • Мобильный клиент нашего форума для Android гаджетов доступен в Google Play Market по этой ссылке. Клиент можно скачать с нашего форума по этой ссылке. Последняя версия МК в нашем телеграм канале вот здесь

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

  • Автор темы Guest
  • Дата начала
G

Guest

#1
На стороне клиента передается русский текст на сервер. Используется метод 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("Перл"); напечатает "Перл"
 

Kmet

Java Team
25.05.2006
1 036
8
#2
На стороне клиента передается русский текст на сервер. Используется метод get.
Если напишу: print("Перл"); напечатает "Перл"
скорее всего передается с клиента не в windows-1251.

http://unspecified.wordpress.com/2008/07/0...best-we-can-do/
 
G

Guest

#3
кодировка на странице использовалась windows-1251
попробывл перекодировать все в utf-8 не помогает

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

????

#5
>кодировка на странице использовалась windows-1251
если передача идет с использованием XMLHttpRequest, то данные по умолчанию уйдут в utf (если мне не изменяет память)
 
G

Guest

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