【Java】文字コードUTF-8の判定・変換方法について解説!
  • facebookページ
  • twitterページ
  • 2021.03.01

    【Java】文字コードUTF-8の判定・変換方法について解説!

    Javaの文字コードとは

    Javaには、プログラムで文字列を正しく表示させるための文字コードがあります。

    文字列は、プログラム内部で「byte型配列」の数値で表現されているのですが、このbyte型配列を文字列に変換し、表示させる際の対応関係を文字コードで表すのです。

    「Shift_JIS」「UTF-8」「UTF-16」といった文字コードがよく使われます。

    そのため、外部ファイルを読み込む際に、ファイルで使用している文字コードを正しく指定しないと文字化けしてしまう場合があります。

    文字化けした場合は、ファイルに書かれていた文字がわからない形で表示されてしまうため、注意が必要です。

    文字コードのデフォルトがUTF-8か確認しよう

    使っている開発環境のデフォルトの文字コードを調べるには、Systemクラスの「getPropertyメソッド」を使いましょう。

    getPropertyメソッドは、指定されたキーによって示されるシステム・プロパティを取得するメソッドです。

    では実際に、コードを動かしてデフォルトの文字コードを確認しましょう。

    記述例は次の通りです。

    実行結果の通り、デフォルト文字コードが「UTF-8」であるのがわかりました。

    UTF-8の変換について

    この章では、文字コードをUTF-8から変換する方法について見ていきましょう。

    まず、文字列をUTF-8から文字コードを変換するためにbyte型配列にします。

    その際に、「getBytesメソッド」を使いましょう。

    getBytesメソッドは、指定された文字セットを使用して、文字列をバイト・シーケンスにエンコード化し、結果を新規バイト配列に格納するメソッドです。

    その後、byte型の配列を指定した文字コードで文字列に変換するために、下記の記述をします。

    これで、任意の文字コードに変換可能です。

    各文字コードで変換した場合を見ていきましょう。

    UTF-8からUTF-16に変換

    UTF-8からUTF-16に変換する記述例は、下記の通りです。

    UTF-8からSJISに変換

    UTF-8からSJISに変換する記述例は、下記の通りです。

    UTF-8からMS932に変換

    UTF-8からMS932に変換する記述例は、下記の通りです。

    UTF-8からUnicodeに変換

    UTF-8からUnicodeに変換する記述例は、下記の通りです。

    文字コードがUTF-8かの判定方法

    文字コードがUTF-8かどうか判定する方法を見ていきましょう。

    文字コードが正しい場合、元の文字列と文字列に変換したbyte型配列の値が等しくなります。

    そのため、equalsメソッドを使って両者を比較し、正しければtrue、そうでなければfalseを返すことで判定可能です。

    では、実際にコードを動かして確認してみます。

    このように、str変数で指定した「ポテパンスタイル」という文字列は、文字コードがUTF-8であり、SJISではないことが判定できました。

    UTF-8でencodingする

    コンパイルを行う際に、エンコーディングを指定することも可能です。

    その場合は、javacの「-encoding オプション」を使います。

    記述方法は次の通りです。

    エンコーディング名には、ソースファイルを保存した時のエンコーディングを指定します。

    今回の例で言うと「UTF-8」ですね。



    優良フリーランス案件多数掲載中!
    フリーランスエンジニアの案件をお探しなら
    ポテパンフリーランス

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア
    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE