pull/43/head
parent
324a30dd84
commit
7d98431dcb
@ -0,0 +1,30 @@ |
||||
package io.legado.app.utils |
||||
|
||||
object UTF8BOMFighter { |
||||
private val UTF8_BOM_BYTES = byteArrayOf(0xEF.toByte(), 0xBB.toByte(), 0xBF.toByte()) |
||||
|
||||
fun removeUTF8BOM(xmlText: String): String { |
||||
val bytes = xmlText.toByteArray() |
||||
val containsBOM = (bytes.size > 3 |
||||
&& bytes[0] == UTF8_BOM_BYTES[0] |
||||
&& bytes[1] == UTF8_BOM_BYTES[1] |
||||
&& bytes[2] == UTF8_BOM_BYTES[2]) |
||||
if (containsBOM) { |
||||
return String(bytes, 3, bytes.size - 3) |
||||
} |
||||
return xmlText |
||||
} |
||||
|
||||
fun removeUTF8BOM(bytes: ByteArray): ByteArray { |
||||
val containsBOM = (bytes.size > 3 |
||||
&& bytes[0] == UTF8_BOM_BYTES[0] |
||||
&& bytes[1] == UTF8_BOM_BYTES[1] |
||||
&& bytes[2] == UTF8_BOM_BYTES[2]) |
||||
if (containsBOM) { |
||||
val copy = ByteArray(bytes.size - 3) |
||||
System.arraycopy(bytes, 3, copy, 0, bytes.size - 3) |
||||
return copy |
||||
} |
||||
return bytes |
||||
} |
||||
} |
Loading…
Reference in new issue