最新閲覧日:

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

このQ&Aに関連する最新のQ&A

A 回答 (5件)

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

    • good
    • 0
この回答へのお礼

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

お礼日時:2001/05/12 16:26

あ、失礼。

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

あ、もしかして、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 コー
ドからある程度例外的なことやあいまいさを排除しようとしたコード系です。
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/05/12 16:23

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;
ですね。

この回答への補足

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

補足日時:2001/05/14 11:11
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/05/12 16:16

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

    • good
    • 0
この回答へのお礼

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

お礼日時:2001/05/11 19:45

このQ&Aに関連する人気のQ&A

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


人気Q&Aランキング

おすすめ情報