Sun, 21 Aug 2005

今日のURL

  • XPJUG : うう、色はできるだけまとめてほしいです...
  • 似非デザイン技法 : ノンデザイナーのためのデザイン技法

晩メシ

  • コカコーラ 500ml x1 あと3枚じゃー(`ー´)

昼メシ

  • 惣菜パン
  • フレンチポテトを塩こしょうで

朝メシ

  • コカコーラ 500ml x1 腹がいたくなった...あうー。

やっつけ系日本語処理

これはいいんだかわるいんだかわからんけど、 今はこうやるのがいちばんスマートな気がしてしまう。

日本語が入りこめそうなコーデックをそうざらいしてJISに変換:

JIS = 'iso-2022-jp'
EUC = 'euc-jp'
CP932 = 'cp932'
SJIS = 'shift_jis'
UTF8 = 'utf-8'
UTF16 = 'utf-16'
ENCODES = CP932, SJIS, EUC, JIS, UTF8, UTF16

def tojis(s):
    jistext = None
    for enc in ENCODES:
        try:
            jistext = unicode(s, enc).encode(JIS)
            break
        except:
            continue
    return jistext

もうちょっと手のこんだことをすると...:

CODECS = {
    'jis': 'japanese.iso-2022-jp',
    'iso-2022-jp': 'japanese.iso-2022-jp',
    'euc': 'japanese.euc-jp',
    'euc-jp': 'japanese.euc-jp',
    'cp932': 'japanese.cp932',
    'sjis': 'japanese.shift_jis',
    'shift_jis': 'japanese.shift_jis',
    'utf8': 'utf-8',
    'utf16': 'utf-16',
    }

def encode(s, codec=None):
    for enc in CODECS.values():
        try:
            utext = unicode(s, enc)
            if codec:
                return utext.encode(CODECS[codec])
            return utext # it returns python unicode type.
        except:
            continue

無意味に入ってる全エンコーディング対応とかも...:

from encodings.aliases import aliases

def encode(s, codec=None):
    for a in aliases:
        try:
            utext = unicode(s, a)
            if codec:
                return utext.encode(codec)
            return utext # it returns python unicode type.
        except:
            continue

夜食

レトルトカレー(きのこなカレー)