- ベストアンサー
javaの文字コード変換について
javaの文字コード変換についての質問ですが 1 shift_jis → jis83 → jis78 2 jis78 → jis83 → shift_jis と変換をかけたいと思っていますがどのようにすれ ばいいのでしょうか? String str = new String( "hogehoge", "XXX" ); でコンストラクタの2つめの引数に変換をかけたい 文字コードの指定をすればうまくいくのでしょうか? もしそうならなんと指定すればいいのでしょうか? 以上よろしくお願いします
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
JIS78とJIS83の相互変換ですが、両方の規格票か、あるいは変更点を詳細に記述してある資料を用意する必要があります。 あとは、HashMapを用意して対応表を作るだけです。双方向が必要なら2つ作って下さい。 変換はHashMapを見てエントリがあれば変換、なければそのままにします。
その他の回答 (2)
- Bonjin
- ベストアンサー率43% (418/971)
>変換をかけたいと思っていますがどのようにすればいいのでしょうか? #1の方が書かれていますが、自分で実装するしかないでしょう。 以下のコードを実行してもらうとJavaでサポートされている文字コードセットがリストアップされますが、jis78やjis83と言った文字コードセットはサポートされていないと思います。 java.util.Iterator it = java.nio.charset.Charset.availableCharsets().keySet().iterator(); while(it.hasNext()){ System.out.println((String)it.next()); }
お礼
返事遅くなって申し訳ありません。 ありがとうございました。
- rinkun
- ベストアンサー率44% (706/1571)
とりあえず参考URLの質問の回答をみて。 まずJavaのStringでは内部表現がUnicodeなので他の文字コードを扱うときはbyte配列で扱った方が良いと思う。 また標準的な文字コード指定ではJIS78を扱えるものはないと思う。JIS78からJIS83への変更は一部の新旧文字の入れ替えを除けばJIS83での追加だったと思うので自力で変換テーブルを作って置換していくしかないかと。 なお厳密にはシフトJISも新旧それぞれにあるけどshift_jisはJIS83ベースと考えて良いのかな。
お礼
返事遅くなって申し訳ありません。 JIS78→JIS83は自力でやるしかない、とのことですが 具体的にどんな感じになるのでしょうか?
お礼
ありがとうございます。 参考にしてやってみたいと思います。