• ベストアンサー

JIS → S-JIS コード変換するには

JIS → S-JIS コード変換するにはどうしたらよいのでしょうか。 ご存じの方教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

jisの1文字の1バイト目をj1、2バイト目をj2とします。 同じくsjisの方を、s1, s2 とします。 s1 = (j1-0x21)/2 + ((j1<=0x5e)?0x81:0xc1); if (j1&1) s2 = j2 + ((j2<=0x5f)?0x1f:0x20); else s2 = j2 + 0x7e; ですね。

nanashisan
質問者

お礼

回答ありがとうございます。求めていたのは正にこういうことでした。 動作を確認してから質問を締めさせていただきます。すみませんが先にしなければならないことがあるので、動作確認は月曜日になります。

nanashisan
質問者

補足

うまくいきました。ありがとうございました。

その他の回答 (4)

回答No.5

Cですと、ズバリ _mbcjistojms() という関数がランタイムライブラリにありますので、調べてみてください。

nanashisan
質問者

お礼

Cだとそんな便利な関数があったのですか。参考にさせていただきます。 ありがとうございました。

回答No.4

あ、失礼。No.3の解答の文字と16進コードが全然合ってませんね。 適宜解釈してください。(_ _)

回答No.3

あ、もしかして、1文字の変換だけではなくて、テキストとしての変換方法が 知りたいのでしょうか?そうだとすると、 'ESC'(0x1b) '$'(0x24) 'B'(0x42) または、'ESC'(0x1b) '$'(0x24) '@'(0x40) (後者は古いコード)で漢字(日本語)に移りますので、 そこから2byteずつ sjis に変換していきます。で、 'ESC'(0x1b) '('(0x24) 'B'(0x42) または、'ESC'(0x1b) '('(0x24) 'J'(0x40) で ASCII に移ります(正確には、前者が ASCII で、後者は JISX0201)。 本当は、もっと複雑なんですが(というか、JISコードというと、かなりあい まいになってしまいます。例えば、漢字に移った後でも、半角のスペースや制 御文字は有効だとか、半角カナはどうするんだとか)、そんな複雑な JIS コー ドを生成するプログラムはまずないので、大丈夫だと思います。 そういう可能性がある場合や、エラー処理をきちっとしたいという場合は、 ここには書ききれないので、ある程度勉強する必要があります。 ISO-2022-JP というのを見たことがあると思いますが、これは一般の JIS コー ドからある程度例外的なことやあいまいさを排除しようとしたコード系です。

nanashisan
質問者

お礼

とりあえず下の回答で解決しそうです。この回答もとNo.4の回答とあわせて参考にさせていただきます。何度もありがとうございました。

  • YoshiMu
  • ベストアンサー率41% (96/229)
回答No.1

開発言語を教えてもらえると、適切な方法を提案いただけると思いますよ。

nanashisan
質問者

お礼

素早いレスありがとうございます。 ただのものが好きなのでHSPで書いてますが、BASICかCで教えていただけるとありがたいです。計算式(というほど単純じゃないかもしれませんが)だけでも構いません。

関連するQ&A

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

    VB(4.0です(^_^;))のプログラムの中でEUCコードで英数カナ日本語混在のファイルを扱います。レコード毎、又はフィールド毎にS-JISコードに変換しながら処理をしたいのですが、その方法をご存知の方、教えて下さい。

  • S_JIS⇒JISコード変換について

    下記のような表があるとします。 JEF ,S-JIS 0x41A4,0x8EA2 0x41A6,0x8FE4 0x41A8,0x894E  ・ ・  ・ ・ このコードからJISコードを取得したいのですが、どのような方法がありますか? 同時にそのコードが表している字の取得もしたいのですが…。 ちなみにJEFは富士通のコードです。 また、変換ソフト的なのはあるのでしょうか? よろしくお願いいたします。

  • AppleScriptで文字コードをEUC→S-JISへ変換するには?

    AppleScriptで文字コードをEUC→S-JISへ変換する方法をご存知の方いらっしゃいませんか? Perlを利用する方法もあるようですが、当方Perlには詳しくないため、困っております。 漢字コードのサポートはOSレベルでやってほしいものですが…。 助けてください!

  • JISコードをシフトJISコードに変換する方法

    紙とえんぴつを使ってJISコードをシフトJISコードに変換する方法を教えてください。 たしか16進数の変換などを使って出来ると聞いたことがあります。 一文字の漢字だけで良いんです。 例えば『高』という漢字のJISコード「3962」をシフトJISコード「8D62」に変換したいというわけです。 2進数や16進数の計算の知識だけはあります。よろしくお願いします。

  • 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
  • 文字コードの「Music S-JIS(MS-JIS)」と「S-JIS」の違いについて

    文字コードの「Music S-JIS(MS-JIS)」と「S-JIS」の違いについて教えて下さい。 S-JISのコード表はわかるので、MS-JISのコード表を教えて頂けると助かります。

  • コードに対する疑問(eucコードとs-jisコード)

    eucコードで半角カナは2バイト表現、s-jisコードは1バイト表現と認識しています。 eucコードで保有するデータが40バイトとした場合、 s-jisコードで保有するとしたら、単純に20バイトとすることで影響はありますでしょうか?

  • UTF-8からShift-JISへの文字コード変換について

    文字コードがUTF-8のファイルをShift-JISに変換する方法についてご存知の方がいらっしゃれば教えていただきたいです。 仕事上で、UTF-8のファイルをしばしば受領するのですが、Shift-JISに変換しないと、その後の処理ができない作業があり、今は秀丸で開いて、文字コードを変換して保存し直してます。 私以外のメンバも今後同じ作業を実施するようになり、引継ぎ手順書を作成しているのですが、ツール等を使わないWindows標準機能を用いた手順を要求され、どうすればいいかわからなくなって質問させていただきました。 よろしくお願い致します。

  • UnicodeからS-Jisへの変換

    Java初心者です。 文字列 String moji をUnicodeからS-Jisへ変換はするにはどうすればいいのでしょうか?

    • ベストアンサー
    • Java
  • 入力した漢字をシフトJISコードに変換したいのですが

    パームウエアの開発に使用するため、 ウインドウに入力した漢字をシフトJISコードに変換してくれるような便利なソフトウエア?(Windows用のアプリケーション)は無いでしょうか ご存知の方教えてください。

専門家に質問してみよう