web-dev-qa-db-ja.com

Javaを使用してBOM文字を削除する

Javaを使用して文字列をvisと同等にするために何が必要か

:set nobomb

BOMが私が読んでいるファイルからのものであると仮定します。

18
James Raitsev

JavaはBOMを適切に処理しません。実際、Javaは、他のすべての文字と同様にBOMを処理します。

これが見つかりました:

http://www.rgagnon.com/javadetails/Java-handle-utf8-file-with-bom.html

public static final String UTF8_BOM = "\uFEFF";

private static String removeUTF8BOM(String s) {
    if (s.startsWith(UTF8_BOM)) {
        s = s.substring(1);
    }
    return s;
}

代わりにApache IOを使用するかもしれません:

http://commons.Apache.org/proper/commons-io/apidocs/org/Apache/commons/io/input/BOMInputStream.html

50

UTF-8の場合、BOMは0xEF、0xBB、0xBFです。

12