diff options
author | Brian P. Hinz <bphinz@users.sf.net> | 2015-03-01 14:40:03 -0500 |
---|---|---|
committer | Brian P. Hinz <bphinz@users.sf.net> | 2015-03-01 14:53:46 -0500 |
commit | fec3eb47d472d16b7c8fdd359047f075b2955330 (patch) | |
tree | 53186e48262ee51cd58546fb86d418a7144928a1 | |
parent | 5e6fdd35842bf1bc8a873949045c070e3b47a229 (diff) | |
download | tigervnc-fec3eb47d472d16b7c8fdd359047f075b2955330.tar.gz tigervnc-fec3eb47d472d16b7c8fdd359047f075b2955330.zip |
Don't violate RFB spec by sending UTF-8
Java viewer was violating the RFB specification by sending UTF-8 encoded clipboard text rather than ISO-8859-1.
-rw-r--r-- | java/com/tigervnc/rfb/CMsgWriter.java | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/java/com/tigervnc/rfb/CMsgWriter.java b/java/com/tigervnc/rfb/CMsgWriter.java index 3b226b16..0d3dccf9 100644 --- a/java/com/tigervnc/rfb/CMsgWriter.java +++ b/java/com/tigervnc/rfb/CMsgWriter.java @@ -20,6 +20,8 @@ package com.tigervnc.rfb; +import java.nio.ByteBuffer; +import java.nio.charset.Charset; import com.tigervnc.rdr.*; abstract public class CMsgWriter { @@ -155,12 +157,9 @@ abstract public class CMsgWriter { startMsg(MsgTypes.msgTypeClientCutText); os.pad(3); os.writeU32(len); - try { - byte[] utf8str = str.getBytes("UTF8"); - os.writeBytes(utf8str, 0, len); - } catch(java.io.UnsupportedEncodingException e) { - e.printStackTrace(); - } + Charset latin1 = Charset.forName("ISO-8859-1"); + ByteBuffer bytes = latin1.encode(str); + os.writeBytes(bytes.array(), 0, len); endMsg(); } |