Вопрос кодировки Perl - PullRequest
0 голосов
/ 29 июня 2011

Мне нужно получить строку из <STDIN>, написанную в латинской и русской смешанных кодировках, и преобразовать ее в некоторый URL:

$search_url = "http://searchengine.com/search?text=" . uri_escape($query);

Но этот процесс идет плохо и выдает Моджибаке (смесь странных букв). Что я могу сделать с Perl, чтобы решить это?

1 Ответ

2 голосов
/ 29 июня 2011

Прежде чем вы сможете начать, есть несколько вещей, которые вам нужно знать.

  1. Вам нужно знать кодировку вашего ввода. Латинская и русская не являются (символьными) кодировками.

  2. Если вы имеете дело с несколькими кодировками, вам необходимо знать, что кодируется с использованием какой кодировки. «Это смесь» не достаточно хорош.

  3. Вам необходимо знать кодировку, которую сайт ожидает использовать в запросе. Это должна быть та же кодировка, что и на странице, содержащей форму поиска.

Тогда это просто вопрос декодирования ввода с использованием правильной кодировки и кодирования запроса с использованием правильной кодировки. Это легкая часть. Кодирование предоставляет функции decode и encode для этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...