From 8717b3ed0ab51aa7e1256edef80ddfbffba87e8b Mon Sep 17 00:00:00 2001
From: YCoffee
Date: Mon, 10 Feb 2025 15:07:12 +0800
Subject: [PATCH] =?UTF-8?q?1=E3=80=81Compressed=20file=20preview=20address?=
=?UTF-8?q?=20error=20handling=202=E3=80=81detectEncoding=20utf16=20rawtex?=
=?UTF-8?q?t=20byte=20array=20is=20empty=20ArrayIndexOutOfBoundsException?=
=?UTF-8?q?=20handling?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../src/main/java/cn/keking/service/FileHandlerService.java | 2 +-
.../src/main/java/cn/keking/utils/SimpleEncodingDetects.java | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/server/src/main/java/cn/keking/service/FileHandlerService.java b/server/src/main/java/cn/keking/service/FileHandlerService.java
index 2444bc750..05f2179c6 100644
--- a/server/src/main/java/cn/keking/service/FileHandlerService.java
+++ b/server/src/main/java/cn/keking/service/FileHandlerService.java
@@ -474,7 +474,7 @@ public FileAttribute getFileAttribute(String url, HttpServletRequest req) {
boolean isCompressFile = !ObjectUtils.isEmpty(compressFileKey);
if (isCompressFile) { //判断是否使用特定压缩包符号
try {
- originFileName = URLDecoder.decode(originFileName, uriEncoding); //转义的文件名 解下出原始文件名
+ originFileName = URLDecoder.decode(compressFilePath, uriEncoding); //转义的文件名 解下出原始文件名
attribute.setSkipDownLoad(true);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
diff --git a/server/src/main/java/cn/keking/utils/SimpleEncodingDetects.java b/server/src/main/java/cn/keking/utils/SimpleEncodingDetects.java
index 19e138bb7..cf873dab4 100644
--- a/server/src/main/java/cn/keking/utils/SimpleEncodingDetects.java
+++ b/server/src/main/java/cn/keking/utils/SimpleEncodingDetects.java
@@ -685,8 +685,8 @@ int utf16_probability(byte[] rawtext) {
// int score = 0;
// int i, rawtextlen = 0;
// int goodbytes = 0, asciibytes = 0;
- if (rawtext.length > 1 && ((byte) 0xFE == rawtext[0] && (byte) 0xFF == rawtext[1]) || // Big-endian
- ((byte) 0xFF == rawtext[0] && (byte) 0xFE == rawtext[1])) { // Little-endian
+ if (rawtext.length > 1 && (((byte) 0xFE == rawtext[0] && (byte) 0xFF == rawtext[1]) || // Big-endian
+ ((byte) 0xFF == rawtext[0] && (byte) 0xFE == rawtext[1]))) { // Little-endian
return 100;
}
return 0;