[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[linux-users:91099] Re: 外字の扱い


田中@いいだしっぺ です


文字コードについての議論を興味深く読ませていただいていますが、非常に深く
て、ちょっとやそっとでは理解できそうもありません(理解したくないというの
が本心です^^)。IBM拡張漢字というのをはじめて認識したような初心者です。

とりあえずは Windows 上でテキストを処理してとりあえずは、今すぐ必要な整
形は行うことはできましたが、まったく本質的ではありません。




しらい さん、ありがとうございます

From: Takashi SHIRAI <shirai _at_ nintendo.co.jp>
Subject: [linux-users:90992] Re: 外字の扱い
Date: Thu, 31 Jan 2002 21:08:42 +0900

>  最初からそんな Windows でしか読めないような文字を使わない
> ようにしておけばいい、というのが本質論だとは思いますが :-)

Windowsのツールでその手の文字を調べるのがありましたので問題のファイルを
調べますと結構そういう文字が使われていて驚きました。

うちの職場は病院で、患者さんのデータは NT 上のソフトで管理されているので
すが、患者一覧ファイルをテキストファイルで貰ってきてそれを再利用したいの
です。

そのデータを元に院内の LAN で患者情報を共有したいのですが、極極少数です
が私のような Linux (非Windows) 組にとっては寂しくなってしまいます。

今までのデータを修正してもらって、この手の機種依存文字をなくしてもらおう
かと思うのですが、こういうのは一般的に妥当な要求でしょうか?図書館とか公
的な機関なんかではどういう取り決めになっているのでしょうか?




しかし、何とか Linux の環境でコードをチェックしたいです

>  ShiftJIS の時点で 1bytes 目が 0xf0 以上の文字を全部ゲタ(〓)
> 化してしまってから nkf にかければいいんじゃないでしょうか?

>  簡単な filter を Perl なり C なりで組むのは楽だと思います
> が、既存のツールを組合わせて用いるなら、tr(1) と sed(1) の合
> わせ技でしょうか。sed(1) だけだと 0xf0-0xfc の指定が出来ない
> もので。
> 	cat src \
> 	| tr '\360\361\362\363\364\365\366\367\370\371\372\373\374' '?'
> 	| sed 's/?./〓/g' > dest
>  DOS 側で ShiftJIS を扱える sed を使って 0xf040-0xfc4b の文
> 字を直接 sed の command 文字列に書いた方が楽ですね。0xf040-
> 0xf9fc の範囲は外字領域なので、一般には 0xfa40-0xfc4b で十分
> でしょう。

この tr と sed を使ったスクリプトですが、文字が化けてしまいます。2バイト
目に0xf0〜0xfcがくるとマッチすると思います。

Perl で shift-jis で読み込んで、この手の文字を検出するにはどうすればいい
でしょうか?かなり大変な正規表現が必要でしょうか?


ちょっと文章が無茶苦茶になってしまいました。ひとえに私の知識が乏しいため
です。どうぞよろしくお願いいたします。

---------------------------------------------
 田中修一@愛知県コロニー中央病院小児外科
   shu _at_ kantaro.org, stanaka _at_ ya2.so-net.ne.jp
---------------------------------------------

この情報があなたの探していたものかどうか選択してください。
yes/まさにこれだ!   no/違うなぁ   part/一部見つかった   try/これで試してみる

あなたが探していた情報はどのようなことか、ご自由に記入下さい。特に「まさにこれだ!」と言う場合は記入をお願いします。
例:「複数のマシンからCATV経由でipmasqueradeを利用してWebを参照したい場合の設定について」
Follow-Ups: References: