重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

javaの文字コード変換についての質問ですが
1 shift_jis → jis83 → jis78
2 jis78 → jis83 → shift_jis
と変換をかけたいと思っていますがどのようにすれ
ばいいのでしょうか?

String str = new String( "hogehoge", "XXX" );
でコンストラクタの2つめの引数に変換をかけたい
文字コードの指定をすればうまくいくのでしょうか?
もしそうならなんと指定すればいいのでしょうか?

以上よろしくお願いします

A 回答 (3件)

JIS78とJIS83の相互変換ですが、両方の規格票か、あるいは変更点を詳細に記述してある資料を用意する必要があります。


あとは、HashMapを用意して対応表を作るだけです。双方向が必要なら2つ作って下さい。
変換はHashMapを見てエントリがあれば変換、なければそのままにします。
    • good
    • 0
この回答へのお礼

ありがとうございます。
参考にしてやってみたいと思います。

お礼日時:2005/09/20 19:31

>変換をかけたいと思っていますがどのようにすればいいのでしょうか?


#1の方が書かれていますが、自分で実装するしかないでしょう。
以下のコードを実行してもらうとJavaでサポートされている文字コードセットがリストアップされますが、jis78やjis83と言った文字コードセットはサポートされていないと思います。

java.util.Iterator it = java.nio.charset.Charset.availableCharsets().keySet().iterator();
while(it.hasNext()){
System.out.println((String)it.next());
}
    • good
    • 0
この回答へのお礼

返事遅くなって申し訳ありません。
ありがとうございました。

お礼日時:2005/09/12 11:43

とりあえず参考URLの質問の回答をみて。



まずJavaのStringでは内部表現がUnicodeなので他の文字コードを扱うときはbyte配列で扱った方が良いと思う。
また標準的な文字コード指定ではJIS78を扱えるものはないと思う。JIS78からJIS83への変更は一部の新旧文字の入れ替えを除けばJIS83での追加だったと思うので自力で変換テーブルを作って置換していくしかないかと。
なお厳密にはシフトJISも新旧それぞれにあるけどshift_jisはJIS83ベースと考えて良いのかな。

参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=1480133
    • good
    • 0
この回答へのお礼

返事遅くなって申し訳ありません。

JIS78→JIS83は自力でやるしかない、とのことですが
具体的にどんな感じになるのでしょうか?

お礼日時:2005/09/12 11:46

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