2011-06-28 6 views
0

私はラテン語やロシア語混合エンコーディングで書かれ<STDIN>から文字列を取得し、いくつかのURLに変換する必要があります質問:Perlのエンコーディングが

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

しかし、これproccessが悪くなり、Mojibakeを提供します(A奇妙な文字の混合物)。それを解決するためにPerlで何ができるでしょうか?

+1

各文字列のエンコーディングを知っていますか?文字列内に存在するすべてのエンコーディングを知っていますか? –

+2

なぜ文字列が混在しているのですか?どのようにこの文字列を取得していますか?完全なサンプルプログラムとサンプル入力は、あなたを助けます。 :) –

答えて

2

開始する前に知っておくべきことがいくつかあります。

  1. 入力のエンコーディングを知る必要があります。 「ラテン」と「ロシア語」は(文字)エンコードではありません。

  2. 複数のエンコーディングを扱う場合は、エンコードされているエンコーディングを知る必要があります。 "それはミックスです"とは言えません。

  3. サイトでは、クエリで使用する予定のエンコードを知る必要があります。これは、検索フォームを含むページと同じエンコードでなければなりません。

次に、正しいエンコードを使用して入力をデコードし、正しいエンコードを使用してクエリをエンコードすることだけです。それは簡単な部分です。 Encodeは、これを行うにはdecodeencodeの機能を提供します。

関連する問題