Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

Python 自体に咬まれたわけではないですが、 Python での実装中の話なので Python bite の括りで書きます。 入出力の文字集合体系(所謂「文字コード」) が一致している場合は問題無いのですが、 これらが一致していない場合、 出力文字コードが対応していない文字が入力に含まれていると咬まれます。 例えば Unicode の入力をベースに Shift_JIS の出力を生成するような場合、 '\uFF5E'(所謂「全角チルダ」)のような文字が使用されていると、 変換に失敗します。 % python > import codecs > import sys > sys.stdout = codecs.getwriter('shift_jis')(sys.stdout) > print u'\uff5e' Traceback (most recent call last): Fil
[日本語の横棒記号に絶望した] http://taichino.com/programming/1384 [従来の文字コードとUnicodeの対応に関する諸問題] http://euc.jp/i18n/ucsnote.ja.html ↑Unicodeでは横棒文字がたくさん定義されている。 しかし、人が画面に入力する横棒なんて、見た目が同じならどれを使っていてもどうでもいいので、分けられるとプログラムが面倒になるという話。 一応、上記リンクから半角文字以外を抜き出したのが以下の変数。 KANA_DASH_PATTERN = ( ur'\u2010' ur'\u2011' ur'\u2012' ur'\u2013' ur'\u2014' ur'\u2015' ur'\u207b' ur'\u208b' ur'\u2212' ur'\u30fc' ur'\uff0d' ur'\uff70' ur
ソフトウェアなどを使いこなすために、ストレスを感じながらもしぶしぶ覚えなければならないようなノウハウ、「バッドノウハウ」がテーマの本連載、最終回の今回は文字コードのBKを取り上げたいと思います。 文字コードとバッドノウハウ 文字コードは、Web開発を行う上で避けては通れない分野です。文字化けを起こさずに、コンテンツをブラウザに正しく表示させることはWeb開発の基本といえます。 しかしながら、文字コードには歴史的な紆余曲折がいろいろあり、膨大なバッドノウハウが人類の英知として蓄積されています。今回は、その膨大なるBKの一部を紹介したいと思います。 機種依存文字は滅びず 文字コードのBKといえば、機種依存文字の存在を忘れてはなりません。インターネットの世界では、古くから「①などの丸付き数字は機種依存文字だから使うな」といわれています。これらの文字はその昔「NEC特殊文字」と呼ばれ、Macとの
インストール インストールは、LinuxやMac OS Xではリスト1の手順で行ってください。Windowsの場合は、http://pyyaml.org/download/pyyaml/にあるWindows installerを使ってください。 リスト1 PyYAMLのインストール $ wget http://pyyaml.org/download/pyyaml/PyYAML-3.05.tar.gz $ tar xzf PyYAML-3.05.tar.gz $ cd PyYAML-3.05/ $ sudo python setup.py install 使い方 PyYAMLの使い方はリスト2のようになります。日本語を含む場合は必ずUnicodeにデコードしなければならない点に注意してください。詳細はリファレンスマニュアルを参照してください。 リスト2 PyYAMLの使い方(ex-pyyam
修正:コードに「print」抜けてた 形態素解析とやらに少々興味を持ったので、その筋で有名らしいMeCabに触れてみた。 そしたら速攻文字化けして躓いたのでメモ。 (MacOS10.4, Python2.5) とりあえずMecabインスコ MacPortsで sudo port install py25-mecabんで、サンプルを実行してみる import MeCab m = MeCab.Tagger ("-Ochasen") print m.parse ("今日もしないとね") 実行結果 '\xe4\xbb\t\xa5\xbf\xa5\xab\xa5\xe0\xa5\xe9\t\xe4\xbb\t\xcc\xbe\xbb\xec-\xb0\xec\xc8\xcc\t\t\n\x8a\xe6\x97\xa5\xe3\x82\x82\xe3\x81\x97\xe3\x81\t\x8a\xe6
こんなエラーがおきたとき >>> print hoge Traceback (most recent call last): File "<stdin>", line 1, in ? UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-7: ordinal not in range(128) デフォルトで設定されてる文字コードを変えると解決します。 で、その設定のしかたですが、 1. 環境変数LANG に端末が扱うエンコードを設定する。(たぶん LANG=ja_JP.utf-8 か、 ja_JP.eucJP のどちらかでいけるとおもいます) 2. 1は端末に出力(ただprintする時)するときだけに対応するので、 hoge = file(’hoge’, ’w’) print >>hoge, u
Macの Django を0.96からsvn-trunkにしてみたメモ。 とりあえずは svn でソースを落としてくる。 どこに置いても良いみたいなので、今回は /usr/local/src/Django に置いた。 $ cd /usr/local/src $ svn co http://code.djangoproject.com/svn/django/trunk ./Django 落として来たソースの中にある django なディレクトリを、 シンボリックリンクとかで site-packages に入れてやれば良いらしい。 ので、既存の Django - 0.96と置き換える形になる。 $ cd /usr/local/python/lib/python2.5/site-packages $ sudo rm -rf ./django $ sudo rm Django-0.96-None-
最近、pythonの記事が増えてきたことは非常にうれしい。 そこで、自戒的な意味も含めてpythonで日本語の扱い方をまとめてみる。 間違ってたりしたらご指摘お願いします。ぺこりm(__)m ※ 実験の環境はWindows XP SP2 Python 2.4.4で行ってますが、ほかのOS環境でも同じと思う。 章構成はこんな感じで。 pythonと文字コード Pythonの3つのエンコード まとめ Pythonと文字コード なにはともあれ文字コード まず、日本語ならぬ文字コード処理をするためには、 USC,Unicode,UTF-8,UTF-16,EUC,Shift-JIS,JIS X 0208, JIS X 0213 などなどの違いを正しく理解していないといかんね。 (そもそも書いてるおまえが正しく認識してるのかよという話はおいといてw) よく文字コードとかエンコード、character
ついでに指定形容詞係り先検索にも。 ダウンロード yahooapi 使い方 python codefrom yahooapi import * client = DAServiceAPI("your_appid") result = client.parse(sentence=u"うちの庭には二羽鶏がいます。") for morph in result.Result.ChunkList.Chunk[0].MorphemList.Morphem: print morph.Reading # => うち # の client = DAServiceSearchAPI("your_appid") result = client.search(mode=MODE_URESHII) for word in result.Result.WordList.Word: print word.Surface
http://code.google.com/p/textutil-ja/ かなからローマ字に変換romanize.romanizeで、ヘボン式のかな⇒ローマ字変換を行う。PerlのLingua::JA::KanaをそのままPythonに移してある。 >>> from textutil_ja import romanize >>> romanize.romanize(u"さとう ひさと") u'SATOU HISATO' romanize.romanize_passportで、パスポート式(ヘボン式+α)のかな⇒ローマ字変換。こちらはLingua::JA::Hepburn::PassportをそのままPythonに移した。long_vowls_hオプションで、OU, OOのときOHに変換するかどうかを指定する。デフォルトはFalse. >>> from textutil_ja import
2008.05.25 Python でエンコーディングを判定する (1) テーマ:プログラミング言語 Python を使う(336) カテゴリ:Python Python でエンコーディングの自動判定をするにはいくつかの方法がある。文字列のコードを直接調べてその情報だけで判定するタイプと、HTML や XML ファイルに含まれるメタ情報なども利用し、そうした情報で判定できないものは文字コードの情報から判定するタイプがある。 前者のタイプでは、pykf や、nkfpython、kanjilib などがある。pykf は、ShiftJIS, EUC-JP, JISコードを相互に変換するためのPython拡張モジュールで、Universal Encoding Detector や encutils のようには、メタ情報を使わない直接文字コードをチェックするタイプ。日本語のみを前提とするのであれば
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く