1つだけ過去を変えられるとしたら?

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

A 回答 (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」となります。

相変わらずスマートでなくてすみません。
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2002/11/05 23:40

まだ解決していなかったのですね。



まず、測定器の出力しているデータはプリンタ用のデータらしいのでプリンタ用の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バイトくらいがほとんどです。バイナリエディタでカットアンドトライするしかないと思います。

わからないことがあれば補足してください。

この回答への補足

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

補足日時:2002/11/04 22:59
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報