2005/03/07 更新
Python言語の機能として UNICODEと、各種文字コード間の変換を行う枠組みがあります。「各種文字コード」の部分は、対応する Codecsというものをインストールすれば、使えるようになっています。 Python 2.4 以降は、日本語の文字コードも含んだ CJK Codecs が含まれて居ますので、特にこだわりの無い人は、特別な Codecs をインストールする必要はありません。
日本語の Codecsについては、梶山さんが開発&メンテナンスされています。
http://www.python.jp/Zope/download/JapaneseCodecs
C コンパイラを使える環境であれば、上記 URLから最新版をダウンロードして、指示に従ってコンパイル&インストールすれば良いでしょう。
Windowsのバイナリ版 Zope 2.5.x or 2.6.x (Python 2.1.xが使われている)を使用の方で、コンパイラを持っていない方は、深町@アトランジアさんが、Mingw32 でコンパイルしたバイナリがあります。
http://www.atransia.co.jp/demo の zope-mingw32test.tgz をダウンロードして、アーカイブを解いたあと
| import japanese |
以上で日本語のエンコードが取り扱えるようになります。
Ploneのバイナリをインストールした場合は、JapaneseCodecsをインストールする場所が異なるようです( http://www.freeml.com/message/zope-memo@freeml.com/0000218 参照)。
Python 2.3 の場合は、zip アーカイブし直したものを置いておきましたので、これを解凍して site-packages に配置すれば良いです。
日本語文字コードの判定、変換モジュールのひとつとして、石本さんが公開されている pykf があります。C コンパイラを使える環境であれば、http://www.gembook.jp/html/moin/moin.cgi/PyKf からソースをダウンロードして、指示に従ってインストールすれば良いでしょう。
Windows版バイナリの Zopeにインストールしたい場合は、http://www.atransia.co.jp/demo の zope-mingw32test.tgz の DLLフォルダ の中に入っている pykf.pyd ファイルを、 $(INST_HOME)\lib\python フォルダにコピーすれば良いでしょう。
Ploneのバイナリをインストールした場合は、JapaneseCodecsをインストールする場所が異なるようです( http://www.freeml.com/message/zope-memo@freeml.com/0000218 参照)。
構造化テキストの記法で "Zope
memo":http://example.co.jp/ と書けますが、 "Zope メモ":http://example.co.jp/
と書いても「Zope
メモ」の部分をリンクにできません。これは、MSBのビットが立っている文字を
literalと判定しないためです。
テキストが、euc-jp や utf-8で書かれているのであれば、
lib/python/StructuredText/STletters.py
を以下のように、1行修正すれば、日本語の文字列を literalと判定してくれるようになります。
(たかのさんの
Structured Text Patchを参考にさせていただきました。)
| $ diff -c STletters.py.orig STletters.py *** STletters.py.orig Mon Feb 17 17:36:18 2003 --- STletters.py Mon Feb 17 17:37:38 2003 *************** *** 8,14 **** return punc digits = string.digits ! letters = string.letters literal_punc = punc_func("'") dbl_quoted_punc = punc_func("\"") strongem_punc = punc_func('*') --- 8,14 ---- return punc digits = string.digits ! letters = string.letters + '\200-\377\?\!' literal_punc = punc_func("'") dbl_quoted_punc = punc_func("\"") strongem_punc = punc_func('*') |
以下のページも参考にしてくださいませ