diff options
author | bruno <bruno.eberhard@pop.ch> | 2015-04-06 20:42:35 +0200 |
---|---|---|
committer | bruno <bruno.eberhard@pop.ch> | 2015-04-06 20:42:35 +0200 |
commit | 9cee8e2800006f824e370b77463e606360c19fdd (patch) | |
tree | 1bf940410557532b735364e678db1f39a82a057f /websocket/src | |
parent | 3abbccc225665390f875c10caaa63b4fbe4e8ad1 (diff) | |
download | nanohttpd-9cee8e2800006f824e370b77463e606360c19fdd.tar.gz |
If payload string contained a control character the result binary
payload ended with a 0 character. This caused me troubles because I
parsed Json payload with chrom browser. Chrome doesn't accept an 0
character at the end.
Diffstat (limited to 'websocket/src')
-rw-r--r-- | websocket/src/main/java/fi/iki/elonen/NanoWebSocketServer.java | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/websocket/src/main/java/fi/iki/elonen/NanoWebSocketServer.java b/websocket/src/main/java/fi/iki/elonen/NanoWebSocketServer.java index c2e91f4..ce15798 100644 --- a/websocket/src/main/java/fi/iki/elonen/NanoWebSocketServer.java +++ b/websocket/src/main/java/fi/iki/elonen/NanoWebSocketServer.java @@ -4,12 +4,8 @@ import java.io.EOFException; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; -import java.nio.ByteBuffer; -import java.nio.CharBuffer; import java.nio.charset.CharacterCodingException; import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.Arrays; @@ -581,20 +577,17 @@ public abstract class NanoWebSocketServer extends NanoHTTPD { // --------------------------------ENCODING-------------------------------- public static final Charset TEXT_CHARSET = Charset.forName("UTF-8"); - public static final CharsetDecoder TEXT_DECODER = TEXT_CHARSET.newDecoder(); - public static final CharsetEncoder TEXT_ENCODER = TEXT_CHARSET.newEncoder(); - public static String binary2Text(byte[] payload) throws CharacterCodingException { - return TEXT_DECODER.decode(ByteBuffer.wrap(payload)).toString(); + return new String(payload, TEXT_CHARSET); } public static String binary2Text(byte[] payload, int offset, int length) throws CharacterCodingException { - return TEXT_DECODER.decode(ByteBuffer.wrap(payload, offset, length)).toString(); + return new String(payload, offset, length, TEXT_CHARSET); } public static byte[] text2Binary(String payload) throws CharacterCodingException { - return TEXT_ENCODER.encode(CharBuffer.wrap(payload)).array(); + return payload.getBytes(TEXT_CHARSET); } @Override |