mirror of
https://github.com/gedoor/legado.git
synced 2024-07-19 01:17:25 +08:00
优化
This commit is contained in:
parent
23d883a50b
commit
f1dfca2154
@ -4,7 +4,7 @@ import io.legado.app.constant.AppConst
|
|||||||
import io.legado.app.help.AppConfig
|
import io.legado.app.help.AppConfig
|
||||||
import io.legado.app.utils.EncodingDetect
|
import io.legado.app.utils.EncodingDetect
|
||||||
import io.legado.app.utils.GSON
|
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.Dispatchers.IO
|
||||||
import kotlinx.coroutines.suspendCancellableCoroutine
|
import kotlinx.coroutines.suspendCancellableCoroutine
|
||||||
import kotlinx.coroutines.withContext
|
import kotlinx.coroutines.withContext
|
||||||
@ -95,7 +95,7 @@ suspend fun Call.await(): Response = suspendCancellableCoroutine { block ->
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun ResponseBody.text(encode: String? = null): String {
|
fun ResponseBody.text(encode: String? = null): String {
|
||||||
val responseBytes = UTF8BOMFighter.removeUTF8BOM(bytes())
|
val responseBytes = Utf8BomUtils.removeUTF8BOM(bytes())
|
||||||
var charsetName: String? = encode
|
var charsetName: String? = encode
|
||||||
|
|
||||||
charsetName?.let {
|
charsetName?.let {
|
||||||
|
@ -1,15 +1,15 @@
|
|||||||
package io.legado.app.utils
|
package io.legado.app.utils
|
||||||
|
|
||||||
@Suppress("unused")
|
@Suppress("unused")
|
||||||
object UTF8BOMFighter {
|
object Utf8BomUtils {
|
||||||
private val UTF8_BOM_BYTES = byteArrayOf(0xEF.toByte(), 0xBB.toByte(), 0xBF.toByte())
|
private val UTF8_BOM_BYTES = byteArrayOf(0xEF.toByte(), 0xBB.toByte(), 0xBF.toByte())
|
||||||
|
|
||||||
fun removeUTF8BOM(xmlText: String): String {
|
fun removeUTF8BOM(xmlText: String): String {
|
||||||
val bytes = xmlText.toByteArray()
|
val bytes = xmlText.toByteArray()
|
||||||
val containsBOM = (bytes.size > 3
|
val containsBOM = (bytes.size > 3
|
||||||
&& bytes[0] == UTF8_BOM_BYTES[0]
|
&& bytes[0] == UTF8_BOM_BYTES[0]
|
||||||
&& bytes[1] == UTF8_BOM_BYTES[1]
|
&& bytes[1] == UTF8_BOM_BYTES[1]
|
||||||
&& bytes[2] == UTF8_BOM_BYTES[2])
|
&& bytes[2] == UTF8_BOM_BYTES[2])
|
||||||
if (containsBOM) {
|
if (containsBOM) {
|
||||||
return String(bytes, 3, bytes.size - 3)
|
return String(bytes, 3, bytes.size - 3)
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user