1025:デフォルトの名無しさん
15/09/03 23:17:37.02 esByfF4n.net
>>981
まず根本的に、特定文字コードの文書はbytesであり、デコードするとstr(unicode≠UTF)になります
browser.titleがstrの時点でそれはデコード済みです、誤った文字コード処理ならエラーになっている事でしょう
デコード済みであるstrをエンコードしてbytesにし、同一コードでデコードを行っても何の意味もありません
文字化けの原因はスクリプトではなく、ご自身で書かれている通りターミナルコードとの不一致だと思います
Python3の標準出力は文字エンコーディングを持っていてstrをエンコードしてから出力します、これは
URLリンク(docs.python.jp)
にて解説されていますので、補足や>>983の通りターミナルコードを合わせるか、PYTHONIOENCODINGでUTF-8にするとか
他、実行中に sys.stdout = io.TextIOWrapper(sys.stdout.detach(),'utf-8') などとして変更する方法もあります
1026:デフォルトの名無しさん
15/09/04 01:14:57.15 /zhxqmNp.net
>>983
仰るとおりWindows版インストーラーで導入したPythonを使っています。
cp932で無いと文字化けするのはminttyの仕様だったのですね。納得しました。
>>984
Selenium+BeautifulSoupでスクレイピングを試しているところでした。
>>985
>特定文字コードの文書はbytesであり、デコードするとstr(unicode≠UTF)になります
デコード済みの内容をエンコードしてから再びデコードするという意味無い事してたのか・・・。
分かりやすい解説、その他サンプルの提示ありがとうございます!後ほど試してみたいと思います。
文字コードの理解が浅くターミナルが原因だという事まで考えに及びませんでした。
ご回答下さった皆様ありがとうございましたm(__)m
1027:デフォルトの名無しさん
15/09/04 04:06:01.59 x7fRT8f0.net
>browser.titleがstrの時点でそれはデコード済みです、誤った文字コード処理ならエラーになっている事でしょう
これだな
他の香具師は的外れ
>>986
違うよ
考え直せ
1028:デフォルトの名無しさん
15/09/04 07:08:04.13 6Gds/3zT.net
くだすれPython(超初心者用) その27
スレリンク(tech板)
1029:デフォルトの名無しさん
15/09/04 10:24:20.27 efXmgHpK.net
乙.py
1030:デフォルトの名無しさん
15/09/04 11:30:39.46 efXmgHpK.net
>>978
>type(title)の出力結果は、<class 'str'>です。
↓を読んだ上で↑の返事はさすがに無いわ
>>977
>なので、Webサイトから取得する文字列はsjisなんだから、
>titleをbytesとして受け取らないといけない。
1031:デフォルトの名無しさん
15/09/04 17:37:20.44 HNXLj6zd.net
君ら初心者いじめるの好きだねw
1032:デフォルトの名無しさん
15/09/04 19:25:26.13 Z77fhgK9.net
いや、人が回答を書いているのに人の書き込みをろくに読まずに
> んー、バカなので難しいですな。。
と書いて、自分の頭が悪いのを盾にして、
人の書き込みを読まないから、さすがに怒ったの
初心者いじめたかったら、そもそも何も教えてない
1033:デフォルトの名無しさん
15/09/04 20:27:20.03 F3w9cE+J.net
初心者以前に人の話を聞かない奴はダメだよね
1034:デフォルトの名無しさん
15/09/04 20:44:09.48 EI4y/sV7.net
>>974で違和感があったがwin版の可能性に気づけなかった
>>981のレスのおかげでWindows版を使ってることを推測できた
つまり一連のやりとりは十分な情報を引き出せた
1035:デフォルトの名無しさん
15/09/04 21:28:58.95 B3
1036:/17KX+.net
1037:デフォルトの名無しさん
15/09/04 21:35:03.89 Z77fhgK9.net
>>995
ちょっと改変するけど、
>>990の
>>977
>なので、Webサイトから取得する文字列はsjisなんだから、
>titleをbytesとして受け取らないといけない。
↑を読んだ上で↓の返事はさすがに無いわ
>>978
>type(title)の出力結果は、<class 'str'>です。
1038:デフォルトの名無しさん
15/09/04 23:58:33.05 x7fRT8f0.net
>Selenium+BeautifulSoupでスクレイピングを試しているところでした。
そいつが browser.title を str に変換するときに間違ったエンコードでデコードして文字化けしたんだろう
既に壊れたデータをエンコードしても手遅れ
決してターミナルのせいではない
1039:デフォルトの名無しさん
15/09/05 01:43:35.09 jZ9K/01b.net
たいてい文字化けの原因は、端末を使うからだよ
TeraPad など、日本人の作ったエディタでは、
簡単に文字コードが変更できるので、
文字化けは起こらない
端末などは外人が作っているため、
日本語などはほったらかし
1040:デフォルトの名無しさん
15/09/05 02:12:09.52 ZKXW4+L0.net
超初心者スレでこの対応は辛辣だよなあ
話を聞いていないのではなく、理解できていないだけだろう
sjisだからbytesとして受け取らないといけないって説明も
初心者向けじゃないと思うし
1041:デフォルトの名無しさん
15/09/05 02:27:54.77 xb8mS1yp.net
次スレに書けよ
1042:デフォルトの名無しさん
15/09/05 02:29:02.99 jZwyv5P2.net
1000
1043:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
1044:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています