せっかくPythonカテゴリを作ったのでここでひとつ。
Pythonでの日本語は簡単で、まあ、ソースファイルのエンコードをキッチリ指示して、u指定をつけたりしとけばまあ問題は無い。
って、これはあくまで表示や文字列としての話。
ファイルの保存となると話が違ってくる。
デフォルトではasciiコーデックが強制指定されており
マルチバイト文字列を通そうとしても拒否されてしまう。
システムデフォルトのエンコーディングをいじる、ということも出来るそうだが
その手段はあまり美しくない。と個人的な好みではそう思う。いやコードはきれいになるけど汎用性がないじゃん、と。
そこでヘルプ見たりググッてさまざまなサイトを見させていただいた結果、こういう感じの結論に達した。
fp=open("hoge.txt","w")
fp.write(u"テスト".encode('UTF-8'))
fp.close()
とすれば、UTF-8で書かれたテキストが出来上がる。
unicode("テスト").encode('UTF-8')
でもいいのかもしれない。
この内容はNoboNoboさんの書かれたPython小技集を必死でググッて発見、参考にさせていただきました。他にも環境変数参照の小技とか、なかなか最高。
というわけで初トラックバックさせていただこうと思ったが、その方法がいまいちわからなかったので断念。
Pythonでの日本語は簡単で、まあ、ソースファイルのエンコードをキッチリ指示して、u指定をつけたりしとけばまあ問題は無い。
って、これはあくまで表示や文字列としての話。
ファイルの保存となると話が違ってくる。
デフォルトではasciiコーデックが強制指定されており
マルチバイト文字列を通そうとしても拒否されてしまう。
システムデフォルトのエンコーディングをいじる、ということも出来るそうだが
その手段はあまり美しくない。と個人的な好みではそう思う。いやコードはきれいになるけど汎用性がないじゃん、と。
そこでヘルプ見たりググッてさまざまなサイトを見させていただいた結果、こういう感じの結論に達した。
fp=open("hoge.txt","w")
fp.write(u"テスト".encode('UTF-8'))
fp.close()
とすれば、UTF-8で書かれたテキストが出来上がる。
unicode("テスト").encode('UTF-8')
でもいいのかもしれない。
この内容はNoboNoboさんの書かれたPython小技集を必死でググッて発見、参考にさせていただきました。他にも環境変数参照の小技とか、なかなか最高。
というわけで初トラックバックさせていただこうと思ったが、その方法がいまいちわからなかったので断念。