No.122 | 投稿日時: | 2003/11/08(土) 05:36 <親記事> |
投稿者: | 森山 将之 |
libiconv 1.9.1 に対して次の修正を行うパッチを作成しました。
問題が無い事が確認され次第公開いたします。
(1) cp932 修正
(2) eucJP-ms 追加
(3) sjis/euc-jp からユーザー定義文字のマッピングを取り除く
(4) sjis/euc-jp/iso-2022-jp* の JIS X 0208 01区29点の UCS を U+2014 に修正
(5) JIS X 0201 ラテン文字を US-ASCII として解釈して UCS へ変換するように修正
※今回は、cp932/eucjp-ms → iso-2022-jp を可能とする修正や cp50220 の追加は行っていません。
No.124 | 投稿日時: | 2003/11/11(火) 21:25 <↑親記事:No.122> |
投稿者: | 森山 将之 |
libiconv の cp932/eucjp-ms の別名も、glibc と同じにした方が良いかも…
こんな感じ
CP932: WINDOWS-31J, csWINDOWS31J, SJIS-OPEN, SJIS-WIN
EUCJP-MS: EUC-JP-MS, EUCJP-OPEN, EUCJP-WIN
No.125 | 投稿日時: | 2003/11/17(月) 22:13 <↑親記事:No.122> |
投稿者: | 森山 将之 <E-Mail> |
libiconv 1.9.1 のパッチに関して、NEWS の英文を次のようにしたのですが、
英語に全く自信がないので、どなたか添削していただけないでしょうか。
あと、1.9.1 用のパッチを実際に使ってみて問題がないかテストしてくれる人も募集。
パッチを使ってみた人は、問題ありなしに関わらず報告していただけると嬉しいです。
よろしくお願いいたします。
--- cut here ---
* Changed EUC-JP, EUC-JISX0213, SHIFT_JIS, SHIFT_JISX0213, ISO-2022-JP,
ISO-2022-JP-1, ISO-2022-JP-2, ISO-2022-JP-3, DEC-KANJI converters to use
em dash instead of horizontal bar.
* Changed SHIFT_JIS, SHIFT_JISX0213, ISO-2022-JP, ISO-2022-JP-1, ISO-2022-JP-2,
ISO-2022-JP-3 converters to use reverse sqlidus instead of Yen sign, and
tilde instead of over line.
* Changed EUC-JP, SHIFT_JIS converters don't use UDC mappings.
* Changed CP932 converter to use exact mapping table.
* Added WINDOWS-31J, csWINDOWS31J, SJIS-OPEN, SJIS-WIN as an alias for CP932.
* Added EUCJP-MS converter.
* Added EUC-JP-MS, EUCJP-OPEN, EUCJP-WIN as an alias for EUCJP-MS.
--- cut here ---
内容は次の通りです。
(1) EUC-JP, EUC-JISX0213, SHIFT_JIS, SHIFT_JISX0213, ISO-2022-JP,
ISO-2022-JP-1, ISO-2022-JP-2, ISO-2022-JP-3, DEC-KANJI コンバーターの
JIS X 0208 01区29点 EM DASH の UCS とのマッピングを U+2015 HORIZONTAL BAR
から U+2014 EM DASH に修正。
(2) SHIFT_JIS, SHIFT_JISX0213, ISO-2022-JP, ISO-2022-JP-1, ISO-2022-JP-2,
ISO-2022-JP-3 コンバーターの JIS X 0201 の 0x5C YEN SIGN, 0x7E OVER LINE
の UCS とのマッピングをそれぞれ、U+005C REVERSE SOLIDUS, U+007E TILDE に
修正。
(3) EUC-JP, SHIFT_JIS コンバーターのユーザー定義文字のマッピング (eucJP-open,
SJIS-open のマッピングと同等) を削除。
(4) CP932 の別名に WINDOWS-31J, csWINDOWS31J, SJIS-open SJIS-win を追加
(5) EUCJP-MS コンバーターを追加
(6) EUCJP-MS の別名に EUC-JP-MS, EUCJP-OPN, EUCJP-WIN を追加
内容が変更になるかもしれませんが、一応、1.9.1 のパッチを次の場所においておき
ます。
http://www2d.biglobe.ne.jp/~msyk/software/libiconv/libiconv-1.9.1-ja-patch-1.diff.gz
パッチの当て方は 1.8 の時と同じです。
※libiconv 1.8 のパッチでは、cp932/eucJP-ms → iso-2022-jp の変換が出来る
ような修正を施していましたが、1.9.1 のパッチではその修正は省略しています。
iso-2022-jp にも eucJP-ms 相当のものが必要なのでしょうけれども、とりあえず
今回は保留という事です。
必要なアプリとかが出てきた時に、どのようにした方が良いか考えようと思ってい
ます。
No.126 | 投稿日時: | 2003/11/23(日) 03:40 <↑親記事:No.125> |
投稿者: | 近藤 <E-Mail> |
以前お世話になったので、英語について意見を書かせていただきます。
ただの参考意見です。
(A)日本語に書かれている情報はできるだけ英語にも入れた方が、
(英語の良し悪しはともかく)内容が確実に伝わるのではないでしょうか。
例えば(1)では
so that JIS X 0208 em dash(0129) is converted into U+2014 em dash instead of U+2015 horizontal bar
(B)最初に----edと書く書き方は前例があるのでしょうか?私なら
EUC-JP, ... DEC-KANJI converters are changedというように書くのですが。
(C)3項目目のdon't useはto excludeの方がいいのではないのでしょうか?
(D)an aliasは複数の時はaliasesの方がいいのではないでしょうか?
これをきっかけにして、もっと英語に強い方が発言して下さるといいのですが。
一応、上の考えで書き換えてみました。
* EUC-JP, EUC-JISX0213, SHIFT_JIS, SHIFT_JISX0213, ISO-2022-JP, ISO-2022-JP-1, ISO-2022-JP-2, ISO-2022-JP-3, DEC-KANJI converters are chnged so that JIS X 0208 em dash(0129) is converted into U+2014 em dash instead of U+2015 horizontal bar.
* SHIFT_JIS, SHIFT_JISX0213, ISO-2022-JP, ISO-2022-JP-1, ISO-2022-JP-2, ISO-2022-JP-3 converters are changed so that JIS X 0208 YEN SIGN(005c) is converted into U+005c REVERSE SOLIDUS instead of U+???? ???? and JIS X 0208 OVER LINE(007e) is converted into U+007e TILDE instead of U+???? ????.
* EUC-JP, SHIFT_JIS converters are changed to exclude UDC mappings.
* CP932 converter is changed to use exact mapping table.
* WINDOWS-31J, csWINDOWS31J, SJIS-OPEN, SJIS-WIN are added as aliases for CP932.
* EUCJP-MS converter is added.
* EUC-JP-MS, EUCJP-OPEN, EUCJP-WIN are added as aliases for EUCJP-MS.
あくまで、ご参考に。
No.128 | 投稿日時: | 2003/11/25(火) 21:45 <↑親記事:No.126> |
投稿者: | 森山 将之 <E-Mail> |
近藤さん、ありがとうございます。
> (A)日本語に書かれている情報はできるだけ英語にも入れた方が、
> (英語の良し悪しはともかく)内容が確実に伝わるのではないでしょうか。
> 例えば(1)では
> so that JIS X 0208 em dash(0129) is converted into U+2014 em dash instead of U> +2015 horizontal bar
私の英語力では、日本語で書く内容を十分に英語に出来なかったもので…
このように訳していただいて、助かります。
> (B)最初に----edと書く書き方は前例があるのでしょうか?私なら
> EUC-JP, ... DEC-KANJI converters are changedというように書くのですが。
これは、libiconv のソースコードを展開し NEWS を見てもらえれば、わかると
思いますが、NEWS での書き方が …ed を最初に書くようになっています。
> (C)3項目目のdon't useはto excludeの方がいいのではないのでしょうか?
テキトーに書いたので、そちらが良ければ、そうしたいとおもいます。
> (D)an aliasは複数の時はaliasesの方がいいのではないでしょうか?
NEWS の他の文を参考に切った貼ったで作った文で、基本的なところから理解できていないのがバレバレですね。
近藤さんの文で ???? になっている所を埋め、U+007E TIDE にあわせて JIS X 0201 7/14(0x7E) OVER LINE という順番に修正すると次のような感じになるでしょうか。
* EUC-JP, EUC-JISX0213, SHIFT_JIS, SHIFT_JISX0213, ISO-2022-JP,
ISO-2022-JP-1, ISO-2022-JP-2, ISO-2022-JP-3, DEC-KANJI converters are
changed so that JIS X 0208 1-29(0x815C) EM DASH is converted into U+2014
EM DASH instead of U+2015 HORIZONTAL BAR.
* SHIFT_JIS, SHIFT_JISX0213, ISO-2022-JP, ISO-2022-JP-1, ISO-2022-JP-2,
ISO-2022-JP-3 converters are changed so that JIS X 0201 5/12(0x5C)
YEN SIGN is converted into U+005C REVERSE SOLIDUS instead of U+00A5
YEN SIGN and JIS X 0201 7/14(0x7E) OVER LINE is converted into U+007E
TILDE instead of U+203E OVER LINE.
* EUC-JP, SHIFT_JIS converters are changed to exclude UDC mappings.
* CP932 converter is changed to use exact mapping table.
* WINDOWS-31J, csWINDOWS31J, SJIS-OPEN, SJIS-WIN are added as aliases
for CP932.
* EUCJP-MS converter is added.
* EUC-JP-MS, EUCJP-OPEN, EUCJP-WIN are added as aliases for EUCJP-MS.
No.129 | 投稿日時: | 2003/11/26(水) 04:20 <↑親記事:No.128> |
投稿者: | 近藤 <E-Mail> |
森山さん、意見を全部採用していただくと、
ありがたいのですが、責任が重過ぎます。
> > (B)最初に----edと書く書き方は前例があるのでしょうか?私なら
> > EUC-JP, ... DEC-KANJI converters are changedというように書く
> > のですが。
>
> これは、libiconv のソースコードを展開し NEWS を見てもらえれば、
> わかると思いますが、NEWS での書き方が …ed を最初に書くように
> なっています。
それでしたら、…ed を最初に書いた方がいいと思います。
次のような感じになるでしょうか。
* Changed EUC-JP, EUC-JISX0213, SHIFT_JIS, SHIFT_JISX0213, ISO-2022-JP, ISO-2022-JP-1, ISO-2022-JP-2, ISO-2022-JP-3, DEC-KANJI converters, so that JIS X 0208 1-29(0x815C) EM DASH is converted into U+2014 EM DASH instead of U+2015 HORIZONTAL BAR.
* Changed SHIFT_JIS, SHIFT_JISX0213, ISO-2022-JP, ISO-2022-JP-1, ISO-2022-JP-2, ISO-2022-JP-3 converters, so that JIS X 0201 5/12(0x5C) YEN SIGN is converted into U+005C REVERSE SOLIDUS instead of U+00A5 YEN SIGN and JIS X 0201 7/14(0x7E) OVER LINE is converted into U+007E TILDE instead of U+203E OVER LINE.
* Changed EUC-JP, SHIFT_JIS converters to exclude UDC mappings.
* Changed CP932 converter to use exact mapping table.
* Added WINDOWS-31J, csWINDOWS31J, SJIS-OPEN, SJIS-WIN as aliases for CP932.
* Added EUCJP-MS converter.
* Added EUC-JP-MS, EUCJP-OPEN, EUCJP-WIN as aliases for EUCJP-MS.
No.130 | 投稿日時: | 2003/11/28(金) 00:00 <↑親記事:No.129> |
投稿者: | 森山 将之 <E-Mail> |
近藤さん、ありがとうございます。
パッチに入れさせてもらいます。
ご指摘を受けなければ、あのまま公開していたと思いますので助かりました。
No.145 | 投稿日時: | 2004/02/20(金) 02:23 <↑親記事:No.125> |
投稿者: | ななお |
「リナックス・ワールド」2月号の記事でこちらのパッチのことを知り、さっそく1.9.1を使わせていただいてます。
kernel-2.6.3、gcc-3.2.3、samba-3.0.1でEUCJP-MSを指定して使っていますが、今のところ全く問題なしです。
ほかに、特にテスト方法とかわからないのですが、なかなか正式リリースにならないようですので、書き込んでみました。
No.183 | 投稿日時: | 2004/07/23(金) 18:39 <↑親記事:No.122> |
投稿者: | みやじ |
はじめまして。
小生 libiconv-1.9.1 で JIS 13区を扱いたいために、jisx0208.h の修正
(ほとんど書き直しに近いのですが)を行ったパッチを作成したのですが、
失礼ながら森山様の libiconv-1.9.1 パッチを存じませんでした。
森山様のパッチ適用後に上記 JIS 13区対応を追加するパッチを作成させて
頂いてもよろしいでしょうか?
なお、小生の作成したオリジナルlibiconv-1.9.1 に対するパッチは、
勤務先の了承を得て、以下の URL で公開しております。
http://www.air.co.jp/pub/libiconv-1.9.1-air-patch.gz
No.184 | 投稿日時: | 2004/07/23(金) 23:56 <↑親記事:No.183> |
投稿者: | 森山 将之 |
libiconv 1.9.1 用のページの公開をしないままで申し訳ありませんでした。
一応、1.9.1, 1.9.2 用のパッチのページを公開いたしましたので、よろしくおねがいいたします。
jisx0208.h への修正は、どのような目的なのでしょうか?
ISO-2022-JP で、13 区を扱いたいという事であれば、cp50220 などのエンコーディングを追加するのが、真っ当なやり方と思います。
なぜなら、cp932 と iso-2022-jp は、Unicode のコードポイントが異なる文字があり変換できない文字が存在する為です。
JIS系のエンコーディング(Shift_JIS, EUC-JP, ISO-2022-JP) をいじると、外国の方は、必ずといっていいほど拒否反応を示すようですから、jisx0208.h に修正を加えてしまうと面倒なのではないかと思います。
cp932 と相互変換が可能な (といっても、ユーザー定義文字は変換できませんが) ISO-2022-JP符号化方式の cp50220 の追加要望であるなら、その旨、お知らせください。
No.187 | 投稿日時: | 2004/07/26(月) 13:54 <↑親記事:No.184> |
投稿者: | みやじ |
実はメールデータを UTF-8 に変換したいのですが、
charset=iso-2022-jp や iso-2022-jp-2
でありながら、NEC 拡張文字(丸囲み数字など) が入っているケースが
多々あるため、オリジナルの libiconv ではどうにもならなかったので、
jisx0208.h に JIS 13 区 (2D21 -- 2D7C) を追加しました。
cp50220 への追加要望は、一度調べさせていただき、
もしあれば再度お願いさせていただく形でよいでしょうか?
No.188 | 投稿日時: | 2004/07/26(月) 22:44 <↑親記事:No.187> |
投稿者: | 森山 将之 <E-Mail> |
> 実はメールデータを UTF-8 に変換したいのですが、
日本語の UTF-8 のコードポイントは、Windows と同じにするのでしょうか?
Unicode コンソーシアム準拠にするのでしょうか?
それとも JIS準拠にするのでしょうか?
という問題があります。
パッチを見た限りでは、JIS準拠の UTF-8 に変換しているようですね。
ただ、そうしてしまうと、cp932 や eucJP-ms に変換出来なくなってしまう危険があるので要注意です。
cp50220 を追加するパッチは libiconv 1.8 用のものがあります。
http://www2d.biglobe.ne.jp/~msyk/software/libiconv-1.8-cp932-family.html
※半角カナ→全角カタカナの変換にバグがあり、以前修正した記憶があるのですが、調べてみたら、修正版をアップロードしてありませんでしたので、近々修正版をアップ予定です。
libiconv 1.9.[12] 用にも、cp932-family パッチを作成しようかと考えています。
ちなみに、cp50220 というのは、Windows コードページ 50220 の事で、JIS X 0208 のエスケープシーケンス ESC $ B で、NEC特殊文字(13区)、NEC選定IBM拡張文字(89〜92区) を扱え、JISコードへのエンコード時には、半角カタカナを全角のカタカナに変換するという機能を持ったコンバータになります。
No.192 | 投稿日時: | 2004/07/27(火) 15:16 <↑親記事:No.188> |
投稿者: | みやじ |
アドバイスをいろいろと頂き、ありがとうございます。
今回作成した patch の目的は、
・文字セットがiso-2022-jp/iso-2022-jp-2のメールデータを
そのまま(JIS準拠の) UTF-8 にする。
・変換したデータを cp932 等へ変換することはない。
といったことでした。
ただ、それでも半角カナが半角カナとして扱えないので、少し苦慮しているところです。
cp50220 を利用させていただくことを検討いたします。
-- 小生の作成した patch は、あからさまに公開しないようにします。
No.193 | 投稿日時: | 2004/07/27(火) 23:22 <↑親記事:No.192> |
投稿者: | 森山 将之 <E-Mail> |
みやじさんのパッチは、Unicode のコードポイントに注目すると、ISO-2022-JP を、次の 『XML日本語プロファイル』 にある x-iso2022jp-19970715-ascii と同等のものにするものになりますね。
http://www.y-adagio.com/public/standards/tr_xml_jpf/jpro.htm#synth-6.5
ちなみに、cp50220 の Unicode は Windows互換のコードポイント(「〜」が FULLWIDTH TILDE U+FF5E になるなど)で、13区のNEC特殊文字と89〜92区のNEC選定IBM拡張文字、そして cp50220 → Unicode の変換では、JIS X 0201 片仮名として、ESC(I のエステケープシーケンス、SO/SI での7ビット表現を受け付けます。
No.194 | 投稿日時: | 2004/07/28(水) 15:41 <↑親記事:No.193> |
投稿者: | みやじ |
いろいろとお手数をおかけいたします。
ところで、cp50220 パッチをあてた libiconv-1.9.1 を商用で利用する際の
ライセンスはLGPL のままでもよろしいのでしょうか?
No.195 | 投稿日時: | 2004/07/29(木) 12:29 <↑親記事:No.194> |
投稿者: | 森山 将之 |
> ところで、cp50220 パッチをあてた libiconv-1.9.1 を商用で利用する際の
> ライセンスはLGPL のままでもよろしいのでしょうか?
元のライセンスに従います。
libiconv 1.9.1 だと、次のライセンスになります。
GNU LIBRARY GENERAL PUBLIC LICENSE Version 2