2011-06-28 65 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來做到這一點。