Javaで文字コードを判定する方法について現役エンジニアが解説【初心者向け】
初心者向けにJavaで文字コードを判定する方法について解説しています。ここではequalsメソッドを使った文字コードの判定方法を説明します。基本の書き方と実行結果の見かたを覚えましょう。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
Javaで文字コードを判定する方法について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。
Javaについてそもそもよく分からないという方は、Javaとは何なのか解説した記事を読むとさらに理解が深まります。
なお本記事は、TechAcademyのオンラインブートキャンプ、Java講座の内容をもとに作成しています。
今回は、Javaに関する内容だね!
どういう内容でしょうか?
文字コードを判定する方法について詳しく説明していくね!
お願いします!
目次
文字コードを判定する方法とは
文字コードとはbyte型の配列を文字列に変換して表示する際にその対応関係を表すものです。よく使われる文字コードにはUTF-8やUTF-16、Shift-JISがあります。
文字コードの判定の必要性は、使用環境と適合しているかどうかを確認するためです。もし文字コードが正しくないと、テキストデータが文字化けを起こして正しく読み取れない・文字が本来表示されるべき形では表示されず別の形で表示される、など様々な問題が発生します。このような状態を解消するためにも使用しているテキストデータの文字コードについて知ることは非常に大切です。
文字コードを判定する方法としてequalsメソッドを使う方法があります。
equalsメソッドを使う
equalsメソッドを使う方法は以下の方法となりまう。
byte[] バイト配列 = 文字列.getBytes(文字コード名); 文字列.equals(new String(バイト配列, 文字コード名));
渡ってきた文字列を文字コード名で一旦byte配列に変換します。その上でもう一度文字列に変換してequalsメソッドで比較することで文字列がその文字コードであるのかどうかを確認することができます。
実際に書いてみよう
では実際にequalsメソッドを使って文字列の文字コードを判定してみましょう
プログラムソースコード
import java.io.UnsupportedEncodingException; public class SampleClass { public static void main(String[] args) throws UnsupportedEncodingException { String word = "こんにちは"; byte[] tmp = new String(word).getBytes("SJIS"); String str = new String(tmp); if (str.equals(characterCode(word, "SJIS"))) { System.out.println("この文字はShift-JISです"); } else if (str.equals(characterCode(word, "UTF-16"))) { System.out.println("この文字はUTF-16です"); } else if (str.equals(characterCode(word, "UTF-8"))) { System.out.println("この文字はUTF-8です"); } else { System.out.println("この文字の文字コードは不明です"); } } private static String characterCode(String str, String chraCode) throws UnsupportedEncodingException { byte[] tmp = new String(str).getBytes(chraCode); return new String(tmp); } }
実行結果
この文字はShift-JISですこの記事はequalsメソッドを使ってJavaで文字コードを判定する方法について解説しました。
監修してくれたメンター
メンターSさん
システムエンジニアとしてこれまで行政システムや医療用システムの保守、開発に携わりました。 JavaやPython、PHP、Kotlinなど様々な言語での開発経験があります。 TechAcademyではJavaコース、Pythonコース、AIコースなど7コースを担当しています。 |
内容分かりやすくて良かったです!
ゆかりちゃんも分からないことがあったら質問してね!
分かりました。ありがとうございます!
TechAcademyでは、初心者でも、JavaやServletの技術を使ってWebアプリケーション開発を習得できる、オンラインブートキャンプを開催しています。
また、現役エンジニアから学べる無料体験も実施しているので、ぜひ参加してみてください。