バイト配列として与えられた入力文字列がUTF8かどうかの判定をしたくてググったら割と上位に出てきた JavaでUTF-8の文字コードを判定する を参考にさせてもらって色々やっていたのですが上手くいかなかったので、上手くいった自分のコードを投稿。 考え方は一緒でとりあえず目的の文字コードでString(Unicode)に変換して更にgetBytesで元に戻した時バイト配列が一致するかどうかで正しく変換できていたのかどうかを判定して、正しく変換できていたのならその文字コードなのだろう、というやり方。 もちろんASCII文字列だった場合はどっちもtrueを返します。 public static boolean isUTF8(byte[] src) { try { byte[] tmp = new String(src, "UTF8").getBytes("UTF8"); return Array