[Java]外字をShift_JISで文字コード変換かけたら文字化けした

備忘録
この記事は約2分で読めます。

先日、Oracleから取得した外字をShift_JISに変換したら文字化けしてしまった。

調べてみたらShift_JISの中でも外字に対応している、MS932などの文字コードがあることを初めて知ったので、備忘録で残しておく。

環境情報

  • Java11

対処法は至って簡単、変換時に指定した文字コードをShift_JISからMS932に変換してやれば解決。

public class main{
    public static void main(String[] args){
        String sample = "㈱あいティーブログ";

        Charset sjis = Charset.forName("SHIFT-JIS");
        Charset ms932 = Charset.forName("MS932");

        System.out.println( new String(sample.getBytes(sjis), sjis));
        System.out.println( new String(sample.getBytes(ms932), ms932));

       }   
}

実行結果

?あいティーブログ
㈱あいティーブログ

Javaで文字を扱う際は注意しないとこういうところで痛い目を見るので気をつけないとダメですね。

参考サイト

JavaでSHIFT-JISを見つけたら要注意 - Qiita
#経緯Javaで作成したWEBアプリケーションにで"~"が文字化けするという不具合があった。DBの文字コードがUTF-8、CSV出力がMS932であったため、異なる文字コードの変換による文字化け…

ps

今回からコードエディタを変えてみました。

こっちの方が見やすい気がするからこっちに移行していきます。

コメント

タイトルとURLをコピーしました