2011-06-28 40 views
0

我需要从<STDIN>一个字符串,用拉丁文写的和俄罗斯的混合编码,并将其转换为一些网址:Perl的编码问题

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

但这proccess变坏并给出了Mojibake(一奇怪字母的混合)。我可以用Perl来做什么来解决它?

+1

你知道每个字符串的编码吗?你知道字符串中的所有编码吗? –

+2

为什么你有混合编码的字符串?你如何得到这个字符串?完整的示例程序和示例输入可帮助人们帮助您。 :) –

回答

2

在开始之前,您需要知道几件事情。

  1. 您需要知道输入的编码。 “拉丁语”和“俄语”不是(字符)编码。

  2. 如果您正在处理多种编码,您需要知道使用哪种编码进行编码。 “这是一种混合”不够好。

  3. 您需要知道网站希望查询使用的编码。这应该与包含搜索表单的页面具有相同的编码。

然后,它只是使用正确的编码解码输入,并使用正确的编码对查询进行编码。这是很容易的部分。 Encode提供了功能decodeencode来做到这一点。