新規記事の投稿を行うことで、非表示にすることが可能です。
2016年01月07日
【py】python2.7とmysqlと文字コード
いきなりdjangoをやろうとしたから初心者(=me)つまづいんだ。。。と改めて
pythonをコマンドプロンプトで実行する基礎から学びだしました。
もっぱらお世話になっているサイト→ここ
私の実行環境だと、日本語はすべて
としないと、文字コードが化けてしまう問題がありながらも、最初に「u」つければいいだけじゃん
と楽観視していたのですが、そこでぶつかった壁が
DBからとってきた値の文字化けでした。
このselectサンプルを実行すると
となってしまうんです。utf8に指定しているのになんでだろう。
結果
文字コードの重複指定?
こうすると
が表示されるようになりました。
先行のかたがたのブログを読ませていただくと、文字コードが永遠のテーマのように書かれていますが
自分で経験すると本当にそのとおりなのかもしれないなと理解した次第でした。
pythonをコマンドプロンプトで実行する基礎から学びだしました。
もっぱらお世話になっているサイト→ここ
私の実行環境だと、日本語はすべて
print u"仮"
としないと、文字コードが化けてしまう問題がありながらも、最初に「u」つければいいだけじゃん
と楽観視していたのですが、そこでぶつかった壁が
DBからとってきた値の文字化けでした。
このselectサンプルを実行すると
===== Hit! =====
code -- 1
name -- python
===== Hit! =====
code -- 2
name -- 繝代う繧ス繝ウ
===== Hit! =====
code -- 3
name -- 縺ア縺・◎繧
となってしまうんです。utf8に指定しているのになんでだろう。
結果
文字コードの重複指定?
for row in result:
print "===== Hit! ====="
print "code -- " + row[0]
print "name -- " + row[1] #row[0].encode('utf-8') にするとかえって日本語が文字化ける
こうすると
===== Hit! =====
code -- 1
name -- python
===== Hit! =====
code -- 2
name -- パイソン
===== Hit! =====
code -- 3
name -- ぱいそん
が表示されるようになりました。
先行のかたがたのブログを読ませていただくと、文字コードが永遠のテーマのように書かれていますが
自分で経験すると本当にそのとおりなのかもしれないなと理解した次第でした。