• ベストアンサー

javaの文字コード変換について

javaの文字コード変換についての質問ですが 1 shift_jis → jis83 → jis78 2 jis78 → jis83 → shift_jis と変換をかけたいと思っていますがどのようにすれ ばいいのでしょうか? String str = new String( "hogehoge", "XXX" ); でコンストラクタの2つめの引数に変換をかけたい 文字コードの指定をすればうまくいくのでしょうか? もしそうならなんと指定すればいいのでしょうか? 以上よろしくお願いします

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

  • ベストアンサー
  • rinkun
  • ベストアンサー率44% (706/1571)
回答No.3

JIS78とJIS83の相互変換ですが、両方の規格票か、あるいは変更点を詳細に記述してある資料を用意する必要があります。 あとは、HashMapを用意して対応表を作るだけです。双方向が必要なら2つ作って下さい。 変換はHashMapを見てエントリがあれば変換、なければそのままにします。

administratorrr
質問者

お礼

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

その他の回答 (2)

  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.2

>変換をかけたいと思っていますがどのようにすればいいのでしょうか? #1の方が書かれていますが、自分で実装するしかないでしょう。 以下のコードを実行してもらうとJavaでサポートされている文字コードセットがリストアップされますが、jis78やjis83と言った文字コードセットはサポートされていないと思います。 java.util.Iterator it = java.nio.charset.Charset.availableCharsets().keySet().iterator(); while(it.hasNext()){ System.out.println((String)it.next()); }

administratorrr
質問者

お礼

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

  • rinkun
  • ベストアンサー率44% (706/1571)
回答No.1

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

参考URL:
http://oshiete1.goo.ne.jp/kotaeru.php3?q=1480133
administratorrr
質問者

お礼

返事遅くなって申し訳ありません。 JIS78→JIS83は自力でやるしかない、とのことですが 具体的にどんな感じになるのでしょうか?

関連するQ&A