• 締切済み

JIS C 6226(旧JIS)コードをパソコンで認識表示したい。

測定装置から旧JISコードでデータが出力されていると思われますが、これをハイパーターミナルやTera Termで認識する方法を紹介してもらったんですが日本語を認識できません。Tera Termは旧JISデータ対応かと思われたんですが結果的にはハイパーターミナルと同じでした。シリアルポートからの旧JISを認識して、SJISで表示させるプログラムは無いでしょうか?探してみたんですが見つかりませんでした。前に無理じゃないかと助言を頂きましたが・・・。 それか旧JISコードをJISで受けて、JISで文字化けしたしたテキストファイルから逆に旧JISコードを認識させ改めてSJISに変換させることは可能でしょうか?ハイパーターミナル等で文字化けしたテキストを変換できないでしょうか?教え下さい。

noname#2553
noname#2553

みんなの回答

  • kabasan
  • ベストアンサー率44% (264/588)
回答No.2

もう少しだけわかりやすいものも書きます。 ・化けたまま受信してテキスト保存する。 ・バイナリエディタで開く。 私はこれを使ってます→http://www.zob.ne.jp/~c.mos/soft/bz.html 仮にテキストが「ABC!c%]%s%W$NN.NL@_DjCM!dABC」だとします。両サイドのABCは半角でその中が化けたJISコードです。 ・最初のABCのあとに<1B><24><42>を挿入する。<>内は16進データです ・最後のABCの前に<1B><28><42>を挿入する。 ・保存して以下のページのソフトで変換します。(JIS→SJISコンバータ) http://www.shiojiri.ne.jp/~mokichi/software.html これで変換後のテキストは「ABC<ポンプの流量設定値>ABC」となります。 相変わらずスマートでなくてすみません。

noname#2553
質問者

お礼

ありがとうございます。

  • kabasan
  • ベストアンサー率44% (264/588)
回答No.1

まだ解決していなかったのですね。 まず、測定器の出力しているデータはプリンタ用のデータらしいのでプリンタ用のKIN/KOUTコードを出力していると思われます。残念ながらプリンター出力からテキストを抽出するソフトは見当たりませんでした。経験者であればBASIC等で作るのも難しくはないと思いますが・・・ 泥臭い方法ですが、参考になればと思い、書いてみます。 ・ターミナルのバイナリモードでデータを受信し、ファイル化する。 ・バイナリエディタでファイルを開き、KIN/KOUTコードを置換する。    <>内は16進データです。    <1C><26>なら<1B><24><42>に置換(ESC/PのKIコード)    <1B><4B>なら<1B><24><42>に置換(PC-PRのKIコード)    <1C><2E>なら<1B><28><42>に置換(ESC/PのKOコード)    <1B><48>なら<1B><28><42>に置換(PC-PRのKOコード) ・データの最後にEOFコード<1A>を追加して保存する。 これでテキストエディタで見れる可能性がありますが、その他の制御コードの影響で一部が化けるかもしれません。また、プリンタが他の形式であればダメですが、多分この2種類(ESC/P系とPC-PR系)だと思います。 このデータを他に流用する場合SJIS形式で保存してください。別に開いたテキストエディタにコピー&ペーストすると自動的にSJISになると思います。 測定器ですので変な制御コードは混じっていないと思うのですが断言できません。 制御コードはたいてい<1B>か<1C>で始まる2~3バイトくらいがほとんどです。バイナリエディタでカットアンドトライするしかないと思います。 わからないことがあれば補足してください。

noname#2553
質問者

補足

なるほど。イメージはわかったような気がします。ただ、プログラミングのほうは全然素人です。バイナリエディタを使用して化けたファイルをみました。プリンタのコード表と照らしあわせてみて日本語は一致してますので日本語を認識する開始コードがわかるようにターミナルのバイナリモードで受信すればいいわけですね。 ちなみにお勧めのバイナリモードで受信するターミナルソフトありましたら教えて下さい。

関連するQ&A

  • RS-232Cの日本語認識について

    先日から色々と助けていただいてます。Tera Termを用いて受信文字コードをJISに設定して設定変更後「リセッ トターミナル」を実行してみたんですが残念ながら上手くいきませんでした。シフトJISとJISで同様の出力です。説明を見てもターミナルIDやAnswerbackも関係なさそうですし。パソコンが悪いのでしょうか?Meなんですけど。文字化けしたものも見事に解読してもらったんで上手く受け取れるかだけの問題のような気がしてきました。ほかに旧JISの漢字コードを受け取れるターミナルソフトありましたら教えて下さい。よろしくお願いします。

  • JISコード変換について

    String str = "アイウエオ"; byte test[] = moji.getBytes("ISO2022JP"); String ret = new String(test); 上記のプログラムで半角カナをJISコードに変換すると 文字化けしているのですが、文字化けしないようにするにはどうしたらよいでしょうか。 なお、JISコードの String test = "アイウエオ"; ← "アイウエオ"はJISコード(文字化け無しの半角カナ文字) String ret = new String(test .getBytes("ISO2022JP"),"JISAutoDetect"); これで、文字化けせずUnicodeに変換できたのですが、単純に逆に変換しただけでは、半角カナの文字は、JISコードに変換すると文字化けしてしまうのでしょうか? どなたか教えて頂けないでしょうか?

    • ベストアンサー
    • Java
  • VB2005でJIS拡張漢字の各文字コードを取得する方法

    ある関数に文字列を渡して各文字コードを取得するプログラムを作成しようとしています。 基本的な文字のコードは取得できるのですが、JIS拡張漢字のほとんどが正しく取得できません。 失敗している文字は内部的に「?」(3F)となってしまいます。 例:拡張漢字のコード値(SJIS:81B2)を変換するとコード値が「3F」になってしまう。(テキストエディタなどで文字化けすると「?」に化けるのと同じなのかな?) 正しく文字コードを取得する方法をご存知の方、またヒントなどありましたらよろしくお願いします。 【環境】WindowsXP     VisualBasic2005 【プログラムの流れ】例:SJISコードを取得する場合 文字列を受取る→1文字取得→System.Text.EncodingでSJIS指定のバイト型配列文字に変換(文字コードを取得)

  • 「平成」 をシフトJISの文字コードに

    「平成」 をシフトJIS(SJIS)の文字コードに変換するとどうなるでしょうか?よろしくお願いします。

  • visual c++の文字コード判別

    現在、visual studio2010のvisual C++でメモ帳をテキストボックスに表示するプログラムを作成しています。 しかし、文字コードがASCIIで保存してあるファイルを開こうとすると、文字化けが起こります。 shift-jisなどに変換しようとすると、ほかの文字コードで保存してあるファイルを開いたときに文字化けが起こります。 文字コードがASCIIのテキストファイルを開くときのみ、shift-jisなどに変換しようと思うのですが、文字コードがASCIIであるか、そうでないかを判別できる処理があれば教えていただけないでしょうか?

  • EUCコードをSHIFT-JISに変換したい

    宜しくお願いします。 VB2008で作成したテキストをHTMLで見たときに正常に見えるように変換がしたいのですが。 パソコン -> 繝代た繧ウ繝  化け文字です。 text1.tex にkey入力をした文字のみ化け文字です。 直接記述した文字は化けてはおりません。 多分、VB2008で作成したHTMLの漢字コードはEUCだとおもうのですが、HTMLファイルを作成して見ると文字化けをしています それでSHIFT-JISに変換を行いたいのですが、関数が分かりません。

  • apacheでPHPの文字コードの認識について。

    とんちんかんな事を聞いているのかもしれません。 人様の質問に回答した際、分からなくなったのですが・・・。 Apacheってどうやって、PHPの文字コードを判断しているのでしょうか? いろいろな文字コードがあると思いますが、PHPなら、まぁ、SJISとEUCでしょう。 そもそも文字コードは、コードを考えた人が、ここの位置にはこの文字を、っていうお約束ですよね。 とうぜん、コードによって違うので、コードを間違えると文字化けが起こります。 これはブラウザーでも、テキストエディターでも、文字化けが起こります。 ここまでは、知っている知識です。 oeditというエディタは、私が使った中で文字コードの間違いが少ないですが、書かれている内容が短いとコードの自動認識が、うまく働かず、コードを間違えて読むこともあります。(体験 ということは、画像のようにこれはJpegとかGifとか、テキストの見えない部分に書かれてないと言うことでしょうか?(推測 もしそうなら、ApacheはどうやってEUCか、SJISか、他のコードかを区別しているのでしょうか? ローマ字は平気だけど、日本語は文字化けますよね。 たとえば、EUCで書かれているけど、Apacheでご認識してしまって、スクリプトは問題ないのに、エラーが起きることがあるのでしょうか? そもそもApacheはどうやって、文字コードを認識しているのでしょうか?

  • 文字操作をしたjisコードをシフトjisに変えたい

    携帯メールをCGIで受け取って処理するスクリプトを書いているのですが 文字コードの処理について行き詰っています。 $str = " $B$F$9$H (B"; #jisコードで"てすと" として、この文字列をjcode.pmでシフトjisに変換したいのですが $body = Jcode::convert($str, 'sjis'); このようにしても$bodyの中身は" $B$F$9$H (B"のまま変わりません。 MIME::parserでうけとったjisコードの文字列はちゃんと変換されるのでjcode.pmに問題はないと思われますが、 文字列操作をして変数に入れるとMIME::parserで受け取った場合とおなじ内容でもデコードされないとゆう結果になります。 なにか根本的に違うのでしょうか… スペースを省いてみたり $body = Jcode::convert($str, 'sjis','jis'); としてみたりしたのですが まったくダメでした。 ちょっとしたアドバイスだけでもいいのでよろしくお願いします。 あとお金がかかってもよいので、そういった問題を解決できそうなサイトなどがあれば紹介していただければと思います。 よろしくお願いします。m(__)m

  • 文字コードshift-jisへの変換について

    お世話になります。 .NET C#にて開発をしております初心者です。 C#からテキストデータにデータの書き出しを行っており、 文字コードをUTF-8からSHIFT-JISへ変換したいのですが、 ネット等で確認し、記述したのですが、データの中には 半角カナ文字もあり、どうも変換がうまくいきません。 どなたかサンプルコードまたは、参考になるサイトなどを お教え頂きたく宜しくお願い致します。

  • tera term 使えますか?

    現在WinXPでターミナルエミュレータ(ハイパーターミナル)にて、監視しています。標準ターミナルとしてANSIが使われています。 機能的にTera Termの方が高機能であると聞き、Tera Termに変えたいのですが、標準ターミナルとしてVT100,選択範囲としてVTなになにしか見えません。VT100(Tera Term)で今までのANSI(ハイパーターミナル)の置き換えは可能でしょうか?