PythonにおけるUnicodeとUTF-8の相互変換
プログラミングで文字列を扱う際には、文字コードに注意することが大切です。
特に、Web上のデータをかき集めようと思ったら、様々な文字コードに出会うことになるので、文字コードの判定方法と変換方法は覚えておかねばならない、重要な項目の一つです。
と言いつつも、Pythonの文字コードに関する作法が、個人的によく忘れがちで、「あれ?!エラーが出たぞ!!」なんてことがしばしば。
しかし、これからはそんなことが起きないように、文字コードの変換方法をここに備忘録として記述しておこうと思います。
uni_text = unicode(utf_text,'utf-8')
utf_text = uni_text.encode('utf-8')
おそらくこの基本形を覚えていたら、他の文字コードとの相互変換もある程度許容できるでしょう。
ちなみに、文字コードの判定方法は、Universal Encoding Detectorを利用すると大変便利です。
あらゆる国の文字コードを判定してくれるのみならず、その判定結果の信頼度まで提供してくれる優れものです。
import urllib urlread = lambda url: urllib.urlopen(url).read() import chardet chardet.detect(urlread("http://google.cn/")) {'encoding': 'GB2312', 'confidence': 0.99}