-PR-
解決済み

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

  • 暇なときにでも
  • 質問No.74696
  • 閲覧数751
  • ありがとう数13
  • 気になる数0
  • 回答数5
  • コメント数0

お礼率 96% (268/278)

JIS → S-JIS コード変換するにはどうしたらよいのでしょうか。
ご存じの方教えてください。
通報する
  • 回答数5
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.2
レベル11

ベストアンサー率 55% (155/280)

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

お礼率 96% (268/278)

うまくいきました。ありがとうございました。
投稿日時 - 2001-05-14 11:11:08
お礼コメント
nanashisan

お礼率 96% (268/278)

回答ありがとうございます。求めていたのは正にこういうことでした。
動作を確認してから質問を締めさせていただきます。すみませんが先にしなければならないことがあるので、動作確認は月曜日になります。
投稿日時 - 2001-05-12 16:16:01
関連するQ&A
-PR-
-PR-

その他の回答 (全4件)

  • 回答No.1
レベル11

ベストアンサー率 41% (96/229)

開発言語を教えてもらえると、適切な方法を提案いただけると思いますよ。 ...続きを読む
開発言語を教えてもらえると、適切な方法を提案いただけると思いますよ。
お礼コメント
nanashisan

お礼率 96% (268/278)

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


  • 回答No.3
レベル11

ベストアンサー率 55% (155/280)

あ、もしかして、1文字の変換だけではなくて、テキストとしての変換方法が 知りたいのでしょうか?そうだとすると、 'ESC'(0x1b) '$'(0x24) 'B'(0x42) または、'ESC'(0x1b) '$'(0x24) '@'(0x40) (後者は古いコード)で漢字(日本語 ...続きを読む
あ、もしかして、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

お礼率 96% (268/278)

とりあえず下の回答で解決しそうです。この回答もとNo.4の回答とあわせて参考にさせていただきます。何度もありがとうございました。
投稿日時 - 2001-05-12 16:23:03
  • 回答No.4
レベル11

ベストアンサー率 55% (155/280)

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

ベストアンサー率 39% (632/1598)

Cですと、ズバリ _mbcjistojms() という関数がランタイムライブラリにありますので、調べてみてください。 ...続きを読む
Cですと、ズバリ _mbcjistojms() という関数がランタイムライブラリにありますので、調べてみてください。
お礼コメント
nanashisan

お礼率 96% (268/278)

Cだとそんな便利な関数があったのですか。参考にさせていただきます。
ありがとうございました。
投稿日時 - 2001-05-12 16:26:05
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


新大学生・新社会人のパソコンの悩みを解決!

いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ