文字コードを変換するときに注意する文字
Pythonスレより。
144 名前: 136 Mail: sage 投稿日: 2008/03/02(日) 03:39:09 >>137 「〜」はEUC-JPとUTF-8を相互変換するときのテーブルがOS/言語ごとに違うために 変換できなかったり違うグリフで表示されたりします。 俺はよく使う文字について以下のようなコードでWindows用にそろえてます。 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 = unicode(...).translate(unification) 136の例では ifp.read().translate(...) とすればよいと思われ。 145 名前: デフォルトの名無しさん Mail: sage 投稿日: 2008/03/02(日) 04:15:41 ごめ、訂正。Windows用にそろえてるんじゃなくて、PythonのEUC-JP/Shift_JIS/ISO-2022-JPコデックが 受け付けるコード値に置換してる、というのが正しいです。 ついでに説明しとくと144のunification(辞書)は、キーはWindowsで日本語入力したときに使われるコード値、 各キーの値はPythonの日本語コデックが受け付けるコード値です。 この8個の文字にOS/言語ごとの変換テーブルの違いが集中しているので、 144の置換をしておくと UTF-8 → EUC-JP/Shift_JIS/ISO-2022-JP 変換時のエラーがだいぶ減るはず。
なんという参考になる情報。
142 名前: デフォルトの名無しさん Mail: sage 投稿日: 2008/03/01(土) 16:42:34 これみて自分で変換するしかないでしょうね http://www.ajisai.sakura.ne.jp/~dindi/chrc/ref/wincode2.txt
これも参考になる。