aboutsummaryrefslogtreecommitdiff
path: root/websocket/src
diff options
context:
space:
mode:
authorbruno <bruno.eberhard@pop.ch>2015-04-06 20:42:35 +0200
committerbruno <bruno.eberhard@pop.ch>2015-04-06 20:42:35 +0200
commit9cee8e2800006f824e370b77463e606360c19fdd (patch)
tree1bf940410557532b735364e678db1f39a82a057f /websocket/src
parent3abbccc225665390f875c10caaa63b4fbe4e8ad1 (diff)
downloadnanohttpd-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.java13
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