diff --git a/quickjs/src/main/java/com/fongmi/quickjs/method/Global.java b/quickjs/src/main/java/com/fongmi/quickjs/method/Global.java index 3442f1622..75ef88526 100644 --- a/quickjs/src/main/java/com/fongmi/quickjs/method/Global.java +++ b/quickjs/src/main/java/com/fongmi/quickjs/method/Global.java @@ -21,7 +21,9 @@ import com.whl.quickjs.wrapper.QuickJSContext; import java.io.IOException; import java.lang.reflect.Method; import java.net.URLEncoder; +import java.nio.ByteBuffer; import java.nio.charset.CharacterCodingException; +import java.nio.charset.Charset; import java.util.Timer; import java.util.TimerTask; import java.util.concurrent.ExecutorService; @@ -151,8 +153,8 @@ public class Global { @Keep @JSMethod - public String gbkDecode(JSArray buffer) throws CharacterCodingException { - String result = JSUtil.decodeTo("GB2312", buffer); + public String gbkDecode(byte[] buffer) throws CharacterCodingException { + String result = Charset.forName("GB2312").newDecoder().decode(ByteBuffer.wrap(buffer)).toString(); Logger.t("gbkDecode").d("text:%s\nresult:\n%s", buffer, result); return result; } diff --git a/quickjs/src/main/java/com/fongmi/quickjs/utils/JSUtil.java b/quickjs/src/main/java/com/fongmi/quickjs/utils/JSUtil.java index 033b858cc..545174aa7 100644 --- a/quickjs/src/main/java/com/fongmi/quickjs/utils/JSUtil.java +++ b/quickjs/src/main/java/com/fongmi/quickjs/utils/JSUtil.java @@ -4,9 +4,6 @@ import com.whl.quickjs.wrapper.JSArray; import com.whl.quickjs.wrapper.JSObject; import com.whl.quickjs.wrapper.QuickJSContext; -import java.nio.ByteBuffer; -import java.nio.charset.CharacterCodingException; -import java.nio.charset.Charset; import java.util.List; import java.util.Map; @@ -25,10 +22,4 @@ public class JSUtil { for (String s : map.keySet()) obj.setProperty(s, map.get(s)); return obj; } - - public static String decodeTo(String charset, JSArray buffer) throws CharacterCodingException { - byte[] bytes = new byte[buffer.length()]; - for (int i = 0; i < buffer.length(); i++) bytes[i] = (byte) (int) buffer.get(i); - return Charset.forName(charset).newDecoder().decode(ByteBuffer.wrap(bytes)).toString(); - } }