|
@@ -18,9 +18,9 @@ object UTF8BOMFighter {
|
|
|
|
|
|
|
|
fun removeUTF8BOM(bytes: ByteArray): ByteArray {
|
|
fun removeUTF8BOM(bytes: ByteArray): ByteArray {
|
|
|
val containsBOM = (bytes.size > 3
|
|
val containsBOM = (bytes.size > 3
|
|
|
- && bytes[0] == UTF8_BOM_BYTES[0]
|
|
|
|
|
- && bytes[1] == UTF8_BOM_BYTES[1]
|
|
|
|
|
- && bytes[2] == UTF8_BOM_BYTES[2])
|
|
|
|
|
|
|
+ && bytes[0] == UTF8_BOM_BYTES[0]
|
|
|
|
|
+ && bytes[1] == UTF8_BOM_BYTES[1]
|
|
|
|
|
+ && bytes[2] == UTF8_BOM_BYTES[2])
|
|
|
if (containsBOM) {
|
|
if (containsBOM) {
|
|
|
val copy = ByteArray(bytes.size - 3)
|
|
val copy = ByteArray(bytes.size - 3)
|
|
|
System.arraycopy(bytes, 3, copy, 0, bytes.size - 3)
|
|
System.arraycopy(bytes, 3, copy, 0, bytes.size - 3)
|
|
@@ -28,4 +28,11 @@ object UTF8BOMFighter {
|
|
|
}
|
|
}
|
|
|
return bytes
|
|
return bytes
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ fun hasBom(bytes: ByteArray): Boolean {
|
|
|
|
|
+ return (bytes.size > 3
|
|
|
|
|
+ && bytes[0] == UTF8_BOM_BYTES[0]
|
|
|
|
|
+ && bytes[1] == UTF8_BOM_BYTES[1]
|
|
|
|
|
+ && bytes[2] == UTF8_BOM_BYTES[2])
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|