2017-02-14 8 views
0

私はこの情報をどこにも取得できません。Python 2 cgiフィールドの格納ポスト変数エンコーディング

誰かがpython cgi fieldstorageオブジェクト経由で取得した文字列のエンコーディングを知っていますか?

例えば、私は、このHTMLフォームを持っている:

私はApacheで、このPythonのファイルを介して処理する
<!DOCTYPE html> 
<html> 
<link rel="stylesheet" type="text/css" href="style.css"/> 
<body> 
    <form id="mainForm" method="post" action="./uploadArticle.py"> 
     <input type="text" name="articletitle" /></br> 
     <textarea name="articlebody" rows="50" cols="100"/></textarea></br> 
    <input type="submit"/> 
    </form> 
</body> 
</html> 

import cgi 
form = cgi.FieldStorage() 
title = form["articletitle"].value 
content = form["articlebody"].value 

ウィルのタイトルと内容は、エンコードされた文字列をUTF8こと?

答えて

0

この質問は、どのようなエンコードが混乱しているかを示しています。

インターネットで受信したデータは、単なるバイトです。 Pythonは "エンコーディング"が何であるかを知る方法がありません。それはその生産方法に完全に依存しています。

Python 3では、そのデータはバイト文字列になります。 Python 2では文字列になりますが、どちらも固有のエンコーディングを持っていません。

ソースコードを知っていれば、それをユニコード文字列にデコードすることができます。 utf-8は良い推測であり、ほとんどの状況で正しいことをしますが、間違っている可能性があります。

+0

です。生のバイトを含むタイトル変数を読み込み可能な文字列にデコードしたいとしましょう。私が使用するエンコーディングは、文字列が "フォームで"エンコードしていた方法によって異なります。 – JeD

+0

フォームではなく、データが入力されたコンピュータですが、はいです。私が言うように、utf-8は通常、かなり安全な推測です。 –

関連する問題