0
Python cgiスクリプトは、コンテンツタイプがapplication/x-www-form-urlencodedのPOST XMLHttpRequestを受け取ります。値はエンコードされません。 これは次のようになりますのchromeの開発ツールでCGI Pythonの特殊文字\ xe4でないä
xhr.open("POST", "URL", true);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.send('RID=123&RName=Bäcker');
、データソース内のフォームデータソースに次のようになり:解析されたビューで
RID = 123 & RNAME =バッカー
または、このように:
RID:123
RNAME:助っ人
のpython3スクリプトのFieldStorageでフォームを取得する:
#! /usr/bin/env python3
# -*- coding: UTF-8 -*-
import cgi
myform = cgi.FieldStorage()
print(str(myform["RName"].value))
印刷出力がBの\ xe4ckerのですか? .encode( 'iso-8859-1')またはデコード( 'utf-8')を使用しようとしましたが、それほど成功していません。
正しく表示されるエンコードまたはコードタイプを変更するにはどうすればよいですか? str()
関数にエンコーディングを追加
、これは実用的なソリューションに私をリードしています。私はdesktop \ w chromeでテストして、問題はios safariに表示されました。異なるデバイスによって送られたフォームの間にはいくつかの違いがあるようです。このコードは 'str(myform [" RName "]。value).encode(" utf-8 ")' –