pull/1511/head
gedoor 3 years ago
parent 23d883a50b
commit f1dfca2154
  1. 4
      app/src/main/java/io/legado/app/help/http/OkHttpUtils.kt
  2. 8
      app/src/main/java/io/legado/app/utils/Utf8BomUtils.kt

@ -4,7 +4,7 @@ import io.legado.app.constant.AppConst
import io.legado.app.help.AppConfig
import io.legado.app.utils.EncodingDetect
import io.legado.app.utils.GSON
import io.legado.app.utils.UTF8BOMFighter
import io.legado.app.utils.Utf8BomUtils
import kotlinx.coroutines.Dispatchers.IO
import kotlinx.coroutines.suspendCancellableCoroutine
import kotlinx.coroutines.withContext
@ -95,7 +95,7 @@ suspend fun Call.await(): Response = suspendCancellableCoroutine { block ->
}
fun ResponseBody.text(encode: String? = null): String {
val responseBytes = UTF8BOMFighter.removeUTF8BOM(bytes())
val responseBytes = Utf8BomUtils.removeUTF8BOM(bytes())
var charsetName: String? = encode
charsetName?.let {

@ -1,15 +1,15 @@
package io.legado.app.utils
@Suppress("unused")
object UTF8BOMFighter {
object Utf8BomUtils {
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])
&& 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)
}
Loading…
Cancel
Save