DOBON.NET DOBON.NETプログラミング掲示板過去ログ

EBCDICコードのCSVファイルの読み込みについて

環境/言語:[C#]
分類:[.NET]

環境:WinXP
  VS2005(C#)
  SQLServer2008

いつもお世話になっております。
今回、汎用機システムから受け取ったCSVファイル(EBCDIC変換)を、取り込む
処理で悩んでおります。下記ロジックで処理を行うと、全角文字の変換ができま
せん。

(ロジック)
 StreamReader objRead = new StreamReader("ファイル名", Encoding.GetEncoding(20290));

string sLine = objRead.ReadLine();

上記処理で試したところ、半角英数カナ文字は上手く変換できましたが、
全角文字が文字化けしてしまいました。
調べたら、EBCDICコードは元々全角文字は存在しないらしく、各社が独自に
拡張しているらしいと分かりました。ちなみに今回の拡張文字コードは、
「JEF78」だそうです。

と、ここまでは分かったのですが、これを「JEF78」を反映させたロジックの
組み方が分からず悩んでおります。どなたかご教授頂けると幸いです。宜しく
お願い致します。
EBCDIC JEF78 からの変換ですか・・・
もう記憶の彼方の話ですネ〜

もう資料は残っていないのですが、検索したら

http://www.massangeana.com/mas/charsets/ebcdic.htm#jp

上記の部分、読まれてますか?
何かの参考までに。

※ 確かにメーカー毎に相違する部分はあるのは確かです。
  ただし基本は、上下位8ビットづつわけて、あるオフセット量
  加算減算させるだけで変換できたような・・・

以上。参考まで
> EBCDIC JEF78 からの変換ですか・・・

  1点気になったので・・・

  SI/SO コードで挟まれた間のコードが漢字コードになって
  いますが、その辺の変換の際の考慮は為されていたのでし
  ょうか?

以上。
本棚を探しても富士通Mシリーズ関連の書籍や富士通OASYS
やFACOM関連資料はすでに処分していました・・・

再度、検索したら・・・

http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/vb_t27.htm

をを〜こんなんありましたネ!〜

使えるんじゃ〜ないですか?

以上。参考まで
■No28377に返信(オショウさんの記事)
> 本棚を探しても富士通Mシリーズ関連の書籍や富士通OASYS
> やFACOM関連資料はすでに処分していました・・・
>
> 再度、検索したら・・・
>
> http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/vb_t27.htm
>
> をを〜こんなんありましたネ!〜
>
> 使えるんじゃ〜ないですか?
>
> 以上。参考まで


早速の返信ありがとうございます。
ご紹介頂いたサイトを見ましたが、フリーソフトのようですね。大変勝手ながら、
今回はできれば外部DLLや、フリーソフト等を使用せず、自作でできないものかと思っております。何かヒントなどありましたら宜しくお願い致します。
制御コードで全角モードへのイン・アウトをして扱ってるんですよね。
アウト中の部分はできたそうなので、
インの部分とアウトの部分を分けてからその処理をアウトの部分だけに使用して、
後はイン中の部分を別処理で細かく変換ですね。
ペアの範囲からどの領域なのか調べて細かくぶった切りまくりながら。

こんなページを見つけました。
http://www.wdic.org/w/WDIC/JEF
イン中のペアの範囲でJIS漢字領域とみなせる部分は連続するだけまとめて切り取って
EUC-JPとして扱って文字列にすることで.NETに任せられるかもしれません。
イン中の他の部分は…
外字領域ははなからユーザに聞いてどうするか決めるしかないものでしょうし、
JEF「拡張非漢字領域」のコード表だけはキヤノンさんとこの
プリンタのマニュアルにありました(
http://cweb.canon.jp/manual/lasershot/pdf/crmes-f359.pdf
)から、あとは「拡張漢字」の部分の表だけですかね?

(変なこと書いてたらすみません。)
返信が遅くなり大変申しわけありません。

今回は、納期が短い事、メーカ独自の漢字表が必要な事を考慮した上で、
自作は厳しいと言う事で、富士通さんのコード変換用ツール「F*TRAN」を
使用する事となりました。

返信して下さった皆様、本当にありがとうございました。
今回の事で、汎用機(EBCDIC文字)は漢字を扱えない事、各メーカーによって
漢字表が存在する事など、知らなかった事が多く勉強になりました。

ありがとうございました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板