私はドイツ語のウムラウトでテキスト入力をWebフォーマルに挿入するためにセレンを使用しています。 Pythonスクリプトの宣言されたコーディングはutf-8です。このページはutf-8エンコーディングを使用しています。そのすべてが正常に動作しますように私は、文字列をdefinine時:Python encoding unicode utf-8
q = u"Hällö" #type(q) returns unicode
...
textbox.send_keys(q)
をしかし、私はのConfigParserを使用して設定ファイル(またはファイルの別の一種)から読み取るしようとしたとき、私は(Hällö
)webformularで不正な形式の出力を取得します。これは私が使用しているコードです:
the_encoding = chardet.detect(q)['encoding'] #prints utf-8
q = parser.get('info', 'query') # type(q) returns str
q = q.decode('unicode-escape') # type(q) returns unicode
textbox.send_keys(q)
send_keys関数に与えられる両方のqの違いは何ですか?
は、代わりに '( 'ラテン-1')' q.decodeを試してみてください。 –
同じ不正な形式の出力を取得する – Robin
これはmojibakeの典型的な例です。あなたがUTF-8端末(Python 2または3)でこれを行うなら、 'print(u" Hllll ".encode( 'utf8')。decode( 'latin1'))' ' ¶'。逆に 'print(u'Hllll''encode( 'latin1')。decode( 'utf8'))'は 'Hällö'を出力します。 –