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:40:03 -0500 |
commit | 08f3ab61ca0003072cd592383c4325a824e24a98 (patch) | |
tree | f58569779674a832d4493950c9442b5ac7a85b96 | |
parent | e36f6e0f3d158178a174b2bb6e48e322e7226142 (diff) | |
download | tigervnc-08f3ab61ca0003072cd592383c4325a824e24a98.tar.gz tigervnc-08f3ab61ca0003072cd592383c4325a824e24a98.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(); } |