くだすれPython(超初心者用) その2

このエントリーをはてなブックマークに追加
491デフォルトの名無しさん
>>486
例えば Windows で日本語を入力すると CP932 の文字セットが使われるので
Unicode 経由で EUC-JP に変換すると対応する文字がないという問題が起こる。
具体的には以下の8つの記号が問題になる。次のように置き換えから変換するとよい。

>>> text = u"\u2014\uFF5E\u2225\u22EF\uFF0D\uFFE0\uFFE1\uFFE2"
>>> text.encode("euc-jp")
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
text.encode("euc-jp")
UnicodeEncodeError: 'euc_jp' codec can't encode character u'\u2014' in position 0: illegal multibyte sequence
>>> unification = {
0x2014: 0x2015, # HORIZONTAL BAR
0xFF5E: 0x301C, # WAVE DASH
0x2225: 0x2016, # DOUBLE VERTICAL LINE
0x22EF: 0x2026, # HORIZONTAL ELLIPSIS
0xFF0D: 0x2212, # MINUS SIGN
0xFFE0: 0x00A2, # CENT SIGN
0xFFE1: 0x00A3, # POUND SIGN
0xFFE2: 0x00AC} # NOT SIGN
>>> text = text.translate(unification) # 問題になる記号を置換
>>> text.encode("euc-jp")