CoverityFix CID:1350833 Dubious method used 86/20386/2
Nimish Kapoor [Mon, 30 Jul 2018 18:09:08 +0000 (23:09 +0530)]
Found a call to a method which will perform a byte to String (or String to
byte) conversion, and will assume that the default platform encoding is
suitable. This will cause the application behaviour to vary between platforms.
Use an alternative API and specify a charset name or Charset object explicitly.
https://stackoverflow.com/questions/696626/java-filereader-encoding-issue

Change-Id: I84d51a6571e76c60861919f196a65fcb78cd5c41

scilab/modules/external_objects_java/src/java/org/scilab/modules/external_objects_java/ScilabJavaCompiler.java

index f258e2b..d9314cc 100644 (file)
@@ -21,6 +21,8 @@ import java.io.File;
 import java.io.FileReader;
 import java.io.IOException;
 import java.io.Reader;
+import java.io.InputStreamReader;
+import java.io.FileInputStream;
 import java.io.StringWriter;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
@@ -366,7 +368,7 @@ public class ScilabJavaCompiler {
         }
 
         public CharSequence getCharContent(boolean ignoreEncodingErrors) {
-            try ( FileReader reader = new FileReader(f) ) {
+            try ( Reader reader = new InputStreamReader(new FileInputStream(f), "UTF-8")) {
 
                 char[] buffer = new char[1024];
                 StringBuffer sb = new StringBuffer();