電子書籍の厳選無料作品が豊富!

DB内にEUC-JPで保存されているデータを取得して、これをUTF-8文字列として扱いたいです。

phpでいうところの$string = mb_convert_encoding($string, "UTF-8", "EUC-JP");

をjavaで実現したいです。
どのように記述すれば変換できるのでしょうか?
検索しても、数十行もコードを書いて実現しているものばかりで、
シンプルな方法が見つかりません。

javaには難しい処理なのでしょうか…

A 回答 (1件)

JavaのStringやchar型の文字コードは16ビットのUnicodeであって、EUC-JPやUTF-8のデータはbyte型の配列として扱う必要があります。

EUC-JPからUTF-8に直接変換することはできないので、一旦Stringを経由します。
EUC-JPのbyte配列 → String → UTF-8のbyte配列

byte[] eucjp;
String str;
byte[] utf8;

/* DBからのEUC-JPのデータがeucjpに入っていると仮定 */
try {
str = new String(eucjp, "EUC-JP");
utf8 = str.getBytes("UTF-8"); /* utf8にUTF-8のデータが入る */
}
catch (java.io.UnsupportedEncodingException e) {}

これだけです。
    • good
    • 2
この回答へのお礼

ありがとうございます。
おかげさまで無事変換できました。
分かりやすい回答ありがとうございます!

お礼日時:2011/06/12 12:20

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