!75 修复xlsx7.4以上版本 乱码

Merge pull request !75 from 高雄/master
This commit is contained in:
kailing
2023-03-15 02:46:03 +00:00
committed by Gitee

View File

@ -5,13 +5,13 @@ import cn.keking.model.FileAttribute;
import cn.keking.model.FileType; import cn.keking.model.FileType;
import cn.keking.service.cache.CacheService; import cn.keking.service.cache.CacheService;
import cn.keking.service.cache.NotResourceCache; import cn.keking.service.cache.NotResourceCache;
import cn.keking.utils.EncodingDetects;
import cn.keking.utils.KkFileUtils; import cn.keking.utils.KkFileUtils;
import cn.keking.utils.WebUtils; import cn.keking.utils.WebUtils;
import com.aspose.cad.CodePages; import com.aspose.cad.CodePages;
import com.aspose.cad.Color; import com.aspose.cad.Color;
import com.aspose.cad.Image; import com.aspose.cad.Image;
import com.aspose.cad.LoadOptions; import com.aspose.cad.LoadOptions;
import com.aspose.cad.fileformats.cad.CadDrawTypeMode;
import com.aspose.cad.imageoptions.CadRasterizationOptions; import com.aspose.cad.imageoptions.CadRasterizationOptions;
import com.aspose.cad.imageoptions.PdfOptions; import com.aspose.cad.imageoptions.PdfOptions;
import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDDocument;
@ -41,8 +41,6 @@ import java.util.Map;
public class FileHandlerService { public class FileHandlerService {
private final Logger logger = LoggerFactory.getLogger(FileHandlerService.class); private final Logger logger = LoggerFactory.getLogger(FileHandlerService.class);
private static final String DEFAULT_CONVERTER_CHARSET = System.getProperty("sun.jnu.encoding");
private final String fileDir = ConfigConstants.getFileDir(); private final String fileDir = ConfigConstants.getFileDir();
private final CacheService cacheService; private final CacheService cacheService;
@ -142,9 +140,10 @@ public class FileHandlerService {
* @param outFilePath 文件绝对路径 * @param outFilePath 文件绝对路径
*/ */
public void doActionConvertedFile(String outFilePath) { public void doActionConvertedFile(String outFilePath) {
String charset = EncodingDetects.getJavaEncode(outFilePath);
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
try (InputStream inputStream = new FileInputStream(outFilePath); try (InputStream inputStream = new FileInputStream(outFilePath);
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, DEFAULT_CONVERTER_CHARSET))) { BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, charset))) {
String line; String line;
while (null != (line = reader.readLine())) { while (null != (line = reader.readLine())) {
if (line.contains("charset=gb2312")) { if (line.contains("charset=gb2312")) {