[Jcode5 568] Re: [kansaipm] IBM拡張文字をEUCに変換したいのですが・・・

MORIYAMA Masayuki msyk at mtg.biglobe.ne.jp
Wed May 14 08:28:49 CDT 2003


はじめまして、森山と申します。

Jcode5 のメーリングリストに Cc されてきたので、そちらからの引用
になります。

At Wed, 14 May 2003 18:42:34 +0900,
Dan Kogai さん:
> On Wednesday, May 14, 2003, at 08:47  AM, M.Takimoto wrote:
> > 瀧本です
> >
> > 久しぶりのML投稿です。
> > IBM拡張文字の混じったシフトJIS文字列をEUC文字列に変換したいのです。
<省略>
> > IBM拡張文字は 0xFA40〜0xFC4B の388文字ですが、この中にはローマ数
> > 字の III とかがあったりしてシフトJISのコード中の同じ文字で代用でき
> > るものがあります。
> > そこでJcodeを使ってシフトJISからEUCに変換する際にはこういう代用で
> > きる文字の場合はシフトJIS範囲内のコードとして扱って、それで、その
> > 文字のコードに対応するEUCコードに変換したいのです。

瀧本さんが EUC とおしっゃているのは、次のどれでしょうか?
  
(0) EUC-JP   (code set 1 = JIS X 0208 / code set 3 = JIS X 0212)
(1) EUC-JISX0213 (code set 1/3 = JIS X 0213)
(2) eucJP-open  (TOG日本ベンダ協議会 (TOG / JVC) 策定)
(3) Windows コードページ 51932 (マイクロソフト独自の EUC)

※(1)〜(3) はローマ数字を含んでいます。

Jcode.pm は、シフトJISの 95区〜120区(F040〜FCFC) を考慮されてい
なかったように思いますので、シフトJISの文字セットを Windows-31J
(Windows 標準キャラクタセット) と仮定して事前に 1区〜94区中の同
じ文字のコードに置き換えてから、Jcode.pm で EUC に変換したいとい
う事でしょうか?
もしそうだとすると、(3) Windows コードページ 51932 への変換とい
う事になるかもしれません。ただ、Encode に移行すると、そういった
単純計算での変換で通用していた技は使えなくなります。

シフトJISの 95区〜120区を Jcode.pm で EUC に変換すると、おかしな
コードが生成されてしまうので、それを回避したというだけなら、わざ
わざベンダ依存の対応をする必要は無く、シフトJISの95区〜120区を
“〓”にでも置換してから、Jcode.pm で EUC に変換すれば良いだけの
話のように思います。そういった事前処理が面倒というのであれば、
jcode.pl を使うという手もありますね。こちらは、シフトJISの95区〜
120区を“〓”に置換してからEUCに変換するという事をしてくれます。

何をやりたいのかによって、適切な処理方法はかわってくると思います。
Mac のシフトJISを Windows の文字セットを仮定した変換にかけるとお
かしな事になるので、マルチプラットフォームな環境では、特定のベン
ダの文字セットに依存した処理は慎むべきでしょうし。

‖ 森山 将之 (MORIYAMA, Masayuki) 
‖ E-Mail: msyk at mtg.biglobe.ne.jp 




More information about the Kansai-pm mailing list