Skip to content

Commit b889d5a

Browse files
committed
OutputStreamWriter not passing charset name to String, and String not
defaulting to Utf-8
1 parent b37fa7f commit b889d5a

File tree

8 files changed

+21
-7
lines changed

8 files changed

+21
-7
lines changed
1.69 KB
Binary file not shown.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
20211213135401
1+
20211218193023
1.69 KB
Binary file not shown.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
20211213135401
1+
20211218193023
1.69 KB
Binary file not shown.

sources/net.sf.j2s.java.core/src/java/io/OutputStreamWriter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -270,7 +270,7 @@ public void flush() throws IOException {
270270
writer.flush();
271271
String s = writer.getBuffer().toString();
272272
if (s.length() > 0) {
273-
byte[] buf = s.getBytes();
273+
byte[] buf = s.getBytes(charsetName);
274274
stream.write(buf, 0, buf.length);
275275
}
276276
writer = new StringWriter();

sources/net.sf.j2s.java.core/src/test/Test_Char.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
package test;
22

3+
import java.io.ByteArrayOutputStream;
4+
import java.io.IOException;
5+
import java.io.OutputStreamWriter;
36
import java.io.UnsupportedEncodingException;
47
import java.nio.ByteBuffer;
58
import java.nio.CharBuffer;
@@ -60,6 +63,18 @@ public static void main(String[] args) {
6063

6164
// omega
6265
s = new String("\u03a9");
66+
ByteArrayOutputStream bos = new ByteArrayOutputStream();
67+
try {
68+
OutputStreamWriter os = new OutputStreamWriter(bos, "UTF-8");
69+
os.write(s);
70+
os.close();
71+
bos.close();
72+
String sa = Arrays.toString(bos.toByteArray());
73+
System.out.println("testing UTF-8 OutputStreamWriter omega " + sa);
74+
assert(sa.equals("[-50, -87]"));
75+
} catch (IOException e) {
76+
}
77+
6378
c = s.charAt(0);
6479
System.out.println(s.length() + " ? " + Character.charCount(s.codePointAt(0)) + " " + Character.getName(c));
6580
assert(Character.getName(c).equals("GREEK CAPITAL LETTER OMEGA"));

sources/net.sf.j2s.java.core/srcjs/swingjs2.js

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14023,7 +14023,8 @@ if (ev.keyCode == 9 && ev.target["data-focuscomponent"]) {
1402314023

1402414024
// Google closure compiler cannot handle Clazz.new or Clazz.super
1402514025

14026-
// BH 2021.08.16 fix for Interface initalizing its subclass with static initialization
14026+
// BH 2021.12.15 default encoding for String.getBytes() should be utf-8.
14027+
// BH 2021.08.16 fix for Interface initializing its subclass with static initialization
1402714028
// BH 2021.07.28 String.instantialize upgraded to use TextDecoder() if possible (not in MSIE)
1402814029
// BH 2021.07.20 Date.toString() format yyyy moved to end, as in Java
1402914030
// BH 2021.06.11 Number.compareTo(....) missing
@@ -19907,8 +19908,7 @@ sp.getBytes$I$I$BA$I=function(i0, i1, dst, dpt) {
1990719908

1990819909
sp.getBytes$=sp.getBytes$S=sp.getBytes$java_nio_charset_Charset=function(){
1990919910
var s=this;
19910-
if(arguments.length==1){
19911-
var cs=arguments[0].toString().toLowerCase();
19911+
var cs = (arguments.length == 1 ? arguments[0] : "utf-8").toString().toLowerCase();
1991219912
var simple=false;
1991319913
for(var i=0;i<charset.length;i++){
1991419914
if(charset[i]==cs){
@@ -19927,7 +19927,6 @@ if(arguments.length==1){
1992719927
if(cs=="utf-8"||cs=="utf8"){
1992819928
s=E.convert2UTF8(this);
1992919929
}
19930-
}
1993119930
var arrs=[];
1993219931
for(var i=0, ii=0;i<s.length;i++){
1993319932
var c=s.charCodeAt(i);

0 commit comments

Comments
 (0)