を、最近やっと知りました。
UTF-8はUnicodeを\xxxxっていう1文字が1〜3バイトになる変な形式に形式に変換したもので、unicodeをファイルとかに入出力するときに使われるなんですよ。
 ずっとその違いがわからなくて、SQLiteCCでTracのデータ覗いたときに、なんでunicodeなのに文字化けするんだろう???って思ってました。 (SQLiteCCはunicodeではなくutf-8をサポートしており、unicodeでSQLiteに保存した文字はSQLiteCCでは表示できなかった)
 文字コードって難しい(~ヘ~;)
ちなみに、 Pythonでutf-8をunicodeに変換するには、
   text = unicode(text,'utf-8')
Shift-jisをunicodeに変換するには、
   text = unicode(text,'Shift_JIS')
unicodeをutf-8に変換するには、
   text = text.encode('utf-8')
unicodeをShift-jisに変換するには
   text = text.encode('Shift_JIS')
とやる。
では、utf-8をShift-jisに変換するには、
   text = unicode(text,'utf-8').encode('Shift_JIS')
あたりまえすぎて意外とWebを探しても見つからないので。 というか日本語環境でのPython (for Python 2.3 or later)を読んでもなかなか理解できなかった(たぶん俺だけ)。 もちろんJapaneseCodecsは必要。
なお、Windows環境では'mbcs'というWindowsの拡張文字を含んだShift-JIS(CP932)用のCodecが使える。
 あと、unicodeを表すCodecとして、'unicode-escape'とか'raw-unicode-escape'いうものも存在する。これは、u'\uxxx\uxxx'とかいうのの文字列部分に変数を使いたいときに使える。\u0001をunicodeにするには、以下の感じで。
   code = 1 
text = unicode('\\u%04x' % code,'Unicode-Escape')

2006.03.11 | Python | トラックバック(1) | コメント(3) |

But preaching, and, as Hurry's limber tongue ceased.

2007.02.03 21:49 URL | www.modelthaven.com #- [ 編集 ]

But it cost me.

2007.02.01 14:33 URL | overseas construction jobs #- [ 編集 ]

Hostilities had already several materials for paragraphs, they encourage me to begin, and soon after, he would certainly have been much employed in any one overboard?

2006.12.19 20:55 URL | era realestate #- [ 編集 ]












管理者にだけ表示

トラックバックURL↓
http://weekbuild.blog39.fc2.com/tb.php/27-283c62f2

[Python]unicode変換
 昨夜、勉強になりそうなpythonのソースコードをネットで探していたところ、次のものが見つかりました。 http://python.blog-slime.com/2007/08/pythongoogle.html#more  朝、印刷をして、仕事場で休憩中などにソースコードを眺め、仕事から戻って実際に試してみたところ

2007.10.25 00:25 | hirono_hideki 日暮途遠