- ベストアンサー
JIS → S-JIS コード変換するには
JIS → S-JIS コード変換するにはどうしたらよいのでしょうか。 ご存じの方教えてください。
- nanashisan
- お礼率96% (268/278)
- その他(プログラミング・開発)
- 回答数5
- ありがとう数13
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
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; ですね。
その他の回答 (4)
- SpiralGalaxy
- ベストアンサー率39% (649/1652)
Cですと、ズバリ _mbcjistojms() という関数がランタイムライブラリにありますので、調べてみてください。
お礼
Cだとそんな便利な関数があったのですか。参考にさせていただきます。 ありがとうございました。
- punchan_jp
- ベストアンサー率55% (155/280)
あ、失礼。No.3の解答の文字と16進コードが全然合ってませんね。 適宜解釈してください。(_ _)
- punchan_jp
- ベストアンサー率55% (155/280)
あ、もしかして、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 コー ドからある程度例外的なことやあいまいさを排除しようとしたコード系です。
お礼
とりあえず下の回答で解決しそうです。この回答もとNo.4の回答とあわせて参考にさせていただきます。何度もありがとうございました。
- YoshiMu
- ベストアンサー率41% (96/229)
開発言語を教えてもらえると、適切な方法を提案いただけると思いますよ。
お礼
素早いレスありがとうございます。 ただのものが好きなのでHSPで書いてますが、BASICかCで教えていただけるとありがたいです。計算式(というほど単純じゃないかもしれませんが)だけでも構いません。
関連するQ&A
- EUCコードをS-JISコードに変換したい
VB(4.0です(^_^;))のプログラムの中でEUCコードで英数カナ日本語混在のファイルを扱います。レコード毎、又はフィールド毎にS-JISコードに変換しながら処理をしたいのですが、その方法をご存知の方、教えて下さい。
- ベストアンサー
- Visual Basic
- 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標準機能を用いた手順を要求され、どうすればいいかわからなくなって質問させていただきました。 よろしくお願い致します。
- 締切済み
- Windows XP
- 入力した漢字をシフトJISコードに変換したいのですが
パームウエアの開発に使用するため、 ウインドウに入力した漢字をシフトJISコードに変換してくれるような便利なソフトウエア?(Windows用のアプリケーション)は無いでしょうか ご存知の方教えてください。
- ベストアンサー
- その他(プログラミング・開発)
お礼
回答ありがとうございます。求めていたのは正にこういうことでした。 動作を確認してから質問を締めさせていただきます。すみませんが先にしなければならないことがあるので、動作確認は月曜日になります。
補足
うまくいきました。ありがとうございました。