]> source.dussan.org Git - tigervnc.git/commitdiff
Decode serverCutText to ISO-8859-1
authorBrian P. Hinz <bphinz@users.sf.net>
Tue, 3 Mar 2015 01:03:42 +0000 (20:03 -0500)
committerBrian P. Hinz <bphinz@users.sf.net>
Tue, 3 Mar 2015 01:24:19 +0000 (20:24 -0500)
Java viewer was incorrectly attempting to decode incoming clipboard updates to UTF-8 instead of Latin-1.

java/com/tigervnc/rfb/CMsgReader.java

index 71045f381d693f20be217b3557bfecfeedefdbd3..a93324cad4f09654838e35c51b47e26ba055adc8 100644 (file)
@@ -23,6 +23,9 @@
 
 package com.tigervnc.rfb;
 
+import java.nio.ByteBuffer;
+import java.nio.CharBuffer;
+import java.nio.charset.Charset;
 import com.tigervnc.rdr.*;
 
 abstract public class CMsgReader {
@@ -64,13 +67,9 @@ abstract public class CMsgReader {
     }
     byte[] buf = new byte[len];
     is.readBytes(buf, 0, len);
-    String str = new String();
-    try {
-      str = new String(buf,"UTF8");
-    } catch(java.io.UnsupportedEncodingException e) {
-      e.printStackTrace();
-    }
-    handler.serverCutText(str, len);
+    Charset latin1 = Charset.forName("ISO-8859-1");
+    CharBuffer chars = latin1.decode(ByteBuffer.wrap(buf));
+    handler.serverCutText(chars.toString(), len);
   }
 
   protected void readFramebufferUpdateStart()