Переглянути джерело

[DS-6276][fix] specify UTF-8 encoding to read file contents (#6466)

This closes #6276
calvinit 3 роки тому
батько
коміт
59daf3c837

+ 2 - 1
dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/FileUtils.java

@@ -20,6 +20,7 @@ package org.apache.dolphinscheduler.common.utils;
 import static org.apache.dolphinscheduler.common.Constants.DATA_BASEDIR_PATH;
 import static org.apache.dolphinscheduler.common.Constants.DATA_BASEDIR_PATH;
 import static org.apache.dolphinscheduler.common.Constants.RESOURCE_VIEW_SUFFIXS;
 import static org.apache.dolphinscheduler.common.Constants.RESOURCE_VIEW_SUFFIXS;
 import static org.apache.dolphinscheduler.common.Constants.RESOURCE_VIEW_SUFFIXS_DEFAULT_VALUE;
 import static org.apache.dolphinscheduler.common.Constants.RESOURCE_VIEW_SUFFIXS_DEFAULT_VALUE;
+import static org.apache.dolphinscheduler.common.Constants.UTF_8;
 import static org.apache.dolphinscheduler.common.Constants.YYYYMMDDHHMMSS;
 import static org.apache.dolphinscheduler.common.Constants.YYYYMMDDHHMMSS;
 
 
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.io.IOUtils;
@@ -246,7 +247,7 @@ public class FileUtils {
             while ((length = inputStream.read(buffer)) != -1) {
             while ((length = inputStream.read(buffer)) != -1) {
                 output.write(buffer, 0, length);
                 output.write(buffer, 0, length);
             }
             }
-            return output.toString();
+            return output.toString(UTF_8);
         } catch (Exception e) {
         } catch (Exception e) {
             logger.error(e.getMessage(), e);
             logger.error(e.getMessage(), e);
             throw new RuntimeException(e);
             throw new RuntimeException(e);

+ 2 - 3
dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/utils/FileUtilsTest.java

@@ -21,7 +21,6 @@ import static org.apache.dolphinscheduler.common.Constants.YYYYMMDDHHMMSS;
 
 
 import org.apache.dolphinscheduler.common.Constants;
 import org.apache.dolphinscheduler.common.Constants;
 
 
-import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
 import java.io.FileNotFoundException;
 
 
@@ -90,10 +89,10 @@ public class FileUtilsTest {
     public void testWriteContent2File() throws FileNotFoundException {
     public void testWriteContent2File() throws FileNotFoundException {
         // file exists, fmt is invalid
         // file exists, fmt is invalid
         String filePath = "test/testFile.txt";
         String filePath = "test/testFile.txt";
-        String content = "正正正faffdasfasdfas";
+        String content = "正正正faffdasfasdfas,한국어; 한글……にほんご\nfrançais";
         FileUtils.writeContent2File(content, filePath);
         FileUtils.writeContent2File(content, filePath);
 
 
-        String  fileContent = FileUtils.readFile2Str(new FileInputStream(new File(filePath)));
+        String fileContent = FileUtils.readFile2Str(new FileInputStream(filePath));
         Assert.assertEquals(content, fileContent);
         Assert.assertEquals(content, fileContent);
     }
     }