• 締切済み

2バイト文字から元の1バイト文字を見つけたい(その逆も)

2バイト文字から元の1バイト文字を見つけることはできませんか? 文字コード表から、手作業で目的のコードを探してやれば、自力で変換することは出来ます。 が、しかしもっと効率よく一発変換なるものはないでしょうか?。 例えば「保狂鏡凝」こういう文字列があった場合。 保   狂   鏡   凝 4A5D  3638  3640  3645 ハ  ン  カ  ク カ  タ  カ  ナ 4A  5D  36  38 36  40  36  45 したがって「保狂鏡凝」は「ハンカクカタカナ」と解読することができるます。 それから、逆に半角文字の「ハンカクカタカナ」から「保狂鏡凝」と変換したいです。 どなたかこのような機能を持つフリーウェアご存知でしたら教えてください。 できればXPで動くものが理想です。

みんなの回答

  • mrumesuke
  • ベストアンサー率45% (254/557)
回答No.4

バイナリエディタ+IEで解決できそうです。 " 保狂鏡凝 [改行]"という内容のテキストファイルがあるとします。(参考URLによると『行の始まりは、ASCII で始まる。行の終わり(改行の直前)は、ASCII 文字で終わる。』という決まりがあるとのことなのでそれに従いました。) このファイルをバイナリエディタで開くと 20 1B 24 42 4A 5D 36 38 36 40 36 45 1B 28 42(または4A) 20 0D 0A   ~~~~~~~~~                ~~~~~~~~~~~~~~~~~~~ となっていると思います。 先頭の20が半角スペース、それに続く1B 24 42(JIS X 0208=第1水準漢字、第2水準漢字等開始のエスケープシーケンス)を1B 28 49(JISカナ=半角カナ開始のエスケープシーケンス)に変更して保存します。そのファイルをIEで開くと「 ハンカクカタカナ 」と半角で表示されるはずです。 IE6.0/Windows2000SP4で確認しました。 ちなみに1B 28 42はASCIIコード開始の、1B 28 4AはJISローマ字開始のエスケープシーケンスです。厳密に言うと、1B 28 4Aでは『行の終わり(改行の直前)は、ASCII 文字で終わる。』というルールに則っていないことになります。

参考URL:
http://www.mikeneko.ne.jp/~lab/kcode/encode.html
  • ranx
  • ベストアンサー率24% (357/1463)
回答No.3

4A5Dが「保」となるコードはJISですね。 コンピュータ上で直接使っている例は少ないと思いますが、 Eメールなどでは、それを組み込んだ形で使われています。 元来は2バイトコードと1バイトコードが別々に定義されて いるものなのですが、Eメールなどでは、「エスケープシーケンス」 と呼ばれるコードを挿入することで、エンコーディングを 切り替えられるようになっています。 ですので、そうしたツールであれば、適当なエスケープシーケンスを 挿入したり取り除いたりすることで、別のエンコーディングによる 表示に切り替えられるはずです。 具体的にどういうコードを入れるかは・・・ごめんなさい。 知りません。暇があったら探してみます。

  • mrumesuke
  • ベストアンサー率45% (254/557)
回答No.2

JISだったようですね。 Stirlingは残念ながらJISには対応していません。 よって#1は見当違いなアドバイスでした。スミマセン。。。 # 確認してから書き込めばよかった・・・(^^A;

  • mrumesuke
  • ベストアンサー率45% (254/557)
回答No.1

4A 5D 36 38...って文字コードなんですか? UTF-8でもないようですが。。。 CA DD B6 B8 B6 C0 B6 C5ではないですか? そうだと仮定して話を進めると、バイナリエディタで直接バリナリデータを参照すればよろしいかと。 CA DD...の場合、参考URLのStirlingでキャラクターセットSHIFT-JISを選択すると「ハンカクカタカナ」が、EUCを選択すると「保狂鏡凝」が表示されます。 (4A 5D 36 38...では「J]68」です。) 動作OS:Windows98 Windows95 WindowsNTとなっていますが、2000でもXPでも動作するようです。

参考URL:
http://www.vector.co.jp/soft/win95/util/se079072.html