トップ «前の日記(2001-08-03) 最新 次の日記(2001-08-05)» 編集

TPRG: 迷走メモ書き

[Donate to CCjp]
2000|12|
2001|01|02|03|04|05|06|07|08|09|10|11|12|
2002|01|02|03|04|05|06|07|08|09|10|11|12|
2003|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|07|08|11|12|
2009|01|02|
2010|04|06|09|

2001-08-04

_ [prog] 日本語文字コード変換の迷宮

元の文字コードを自動判別して、任意のコードに変換する。……というどこにでもある(そしてそこら中で実際に行われている)ことがやりたいのだけど、どうすればよいのだろう? 

* とりあえずあるものをみてみると

  • 香り屋さんの所にあるifil
    判定のために iconv_open で SJIS→適当な内部コード、EUC→同じく内部コード……という具合に順にディスクリプタを作り実際に変換している。そして、変換でエラーが出なかったらそのコードだという訳なのだが。
    問題はその「適当な内部コード」を一体何にすればよいのかということだ。このソースでは UCS-2-INTERNAL になっていたが、手元の環境で iconv -l をすると、このコードはサポートされていない。UTF-8 等はあるが、これが全ての環境にあるとは思えないし……
  • ととほるさんの所の漢字コードの変換について
    自力で順にコードを見ていって判別している。その後 locale にあわせて iconv で変換する。わかりやすい。
  • Blend RPM Projectの所にあったlibjconv
    自力判定、後に自力変換。サンプルを見ると非常に単純で使いやすそう。iconv を一切使っていないので、locale にあわせたい時は自分で何とかするしかないか。
  • debian package の libjconv2, libjconv-dev
    変換には iconv を使っている。しかし、私に C を読む能力が不足していてよくわからない。Kondara 由来のものらしいが。あと、説明には
    libjconv-dev - charset conversion library - developomentThis library provide Japanese Code Conversion capabilitybased on iconv. It is based by application to enlargenumber of supported encoding. It isn't only for japanesepeople, it is used as helper in sylpheed mailer.

    とあるのに、一つのパッケージもこれに依存していない。もう使われていないのかな?

* 結局

Blend RPM Project の libjcode で、出力コードを現在の locale から自動的に取るようにするか。

しかし、「とりあえずこれつかっとけ」と言われるような、標準的な方法はないのかな? みんなで同じ様なものを作りまくっているように見える……

お名前:
E-mail:
コメント:
[]


Tatsuki Sugiura <sugi@nemui.org>