- くだすれPython(超初心者用) その26 [転載禁止]©2ch.net
973 :デフォルトの名無しさん[sage]:2015/09/03(木) 20:40:51.42 ID:26WurM6V - python3.4の文字の扱いについてご教示願います
title = browser.title t = title.encode('utf-8') d = t1.decode('utf-8') print(d) 変数titleにはWebサイトから取得した文字コードS-JISのページタイトル(GMO証券)が入っています。 titleの内容を文字コードUTF-8に設定したターミナル上に出力する際に文字化けしないように S-JISからUTF-8に文字コード変換したいのですが、上記内容のコードでは上手くいきません。 原因がわかる方いましたら、お手数ですがご教示願います。 【補足】 ・ターミナルの文字コード設定をS-JISに変更すれば、文字化けしないで表示することが出来ます。 ・ターミナルはminttyを使用しています 以上
|
- くだすれPython(超初心者用) その26 [転載禁止]©2ch.net
974 :デフォルトの名無しさん[sage]:2015/09/03(木) 20:48:12.64 ID:26WurM6V - 申し訳ございません、変数名に誤りがありました。
正しくは以下の通りです。 誤 d = t1.decode('utf-8') 正 d = t.decode('utf-8') 以上
|
- くだすれPython(超初心者用) その26 [転載禁止]©2ch.net
977 :デフォルトの名無しさん[sage]:2015/09/03(木) 21:22:02.94 ID:26WurM6V - >>975
ご回答有り難うございます。 >titleがshift_jisでエンコードされたbytesと仮定して答えます 申し訳御座いません。データ型の情報が不足しておりました。 type(title)の出力結果は、<class 'str'>です。
|
- くだすれPython(超初心者用) その26 [転載禁止]©2ch.net
980 :デフォルトの名無しさん[sage]:2015/09/03(木) 21:44:17.93 ID:26WurM6V - >>979
回答有り難うございます。 > Webサイトが送ってくるページタイトルはsjisでしょ? SJISの内容のページタイトルが送られてくるので素直にSJISでエンコード→デコードしてあげれば 文字化けしていない正しい内容が得られるからUTF-8に変換する必要なんて無いって事ですかね? 以下の様にコードを修正して再実行してたところやはり文字化けしてしまいます。 んー、バカなので難しいですな。。 title = browser.title.encode('shift_jis') t = title.decode('shift_jis') print(t)
|