changed string reads/writes to use utf-8. Also fixed location of icon resource.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4420 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/java/src/com/tigervnc/rfb/CMsgReader.java b/java/src/com/tigervnc/rfb/CMsgReader.java
index 66b9d17..4123056 100644
--- a/java/src/com/tigervnc/rfb/CMsgReader.java
+++ b/java/src/com/tigervnc/rfb/CMsgReader.java
@@ -64,7 +64,13 @@
}
byte[] buf = new byte[len];
is.readBytes(buf, 0, len);
- handler.serverCutText(new String(buf), len);
+ String str = new String();
+ try {
+ str = new String(buf,"UTF8");
+ } catch(java.io.UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
+ handler.serverCutText(str, len);
}
protected void readFramebufferUpdateStart()
diff --git a/java/src/com/tigervnc/rfb/CMsgWriter.java b/java/src/com/tigervnc/rfb/CMsgWriter.java
index 79f5ee9..7abbc09 100644
--- a/java/src/com/tigervnc/rfb/CMsgWriter.java
+++ b/java/src/com/tigervnc/rfb/CMsgWriter.java
@@ -144,7 +144,12 @@
startMsg(MsgTypes.msgTypeClientCutText);
os.pad(3);
os.writeU32(len);
- os.writeBytes(str.getBytes(), 0, len);
+ try {
+ byte[] utf8str = str.getBytes("UTF8");
+ os.writeBytes(utf8str, 0, len);
+ } catch(java.io.UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
endMsg();
}
diff --git a/java/src/com/tigervnc/rfb/CSecurityManaged.java b/java/src/com/tigervnc/rfb/CSecurityManaged.java
index 3502289..2461682 100644
--- a/java/src/com/tigervnc/rfb/CSecurityManaged.java
+++ b/java/src/com/tigervnc/rfb/CSecurityManaged.java
@@ -37,7 +37,12 @@
// Return the response to the server
os.writeU8(username.length());
- os.writeBytes(username.toString().getBytes(), 0, username.length());
+ try {
+ byte[] utf8str = username.toString().getBytes("UTF8");
+ os.writeBytes(utf8str, 0, username.length());
+ } catch(java.io.UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
os.flush();
int serverPort = is.readU16();
//if (serverPort==0) { return true; };
diff --git a/java/src/com/tigervnc/rfb/CSecurityPlain.java b/java/src/com/tigervnc/rfb/CSecurityPlain.java
index c790852..707915c 100644
--- a/java/src/com/tigervnc/rfb/CSecurityPlain.java
+++ b/java/src/com/tigervnc/rfb/CSecurityPlain.java
@@ -37,8 +37,15 @@
// Return the response to the server
os.writeU32(username.length());
os.writeU32(password.length());
- os.writeBytes(username.toString().getBytes(), 0, username.length());
- os.writeBytes(password.toString().getBytes(), 0, password.length());
+ byte[] utf8str;
+ try {
+ utf8str = username.toString().getBytes("UTF8");
+ os.writeBytes(utf8str, 0, username.length());
+ utf8str = password.toString().getBytes("UTF8");
+ os.writeBytes(utf8str, 0, password.length());
+ } catch(java.io.UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
os.flush();
return true;
}
diff --git a/java/src/com/tigervnc/rfb/CSecurityVncAuth.java b/java/src/com/tigervnc/rfb/CSecurityVncAuth.java
index f047f53..75673d5 100644
--- a/java/src/com/tigervnc/rfb/CSecurityVncAuth.java
+++ b/java/src/com/tigervnc/rfb/CSecurityVncAuth.java
@@ -41,8 +41,14 @@
// Calculate the correct response
byte[] key = new byte[8];
int pwdLen = passwd.length();
+ byte[] utf8str = new byte[pwdLen];
+ try {
+ utf8str = passwd.toString().getBytes("UTF8");
+ } catch(java.io.UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
for (int i=0; i<8; i++)
- key[i] = i<pwdLen ? (byte)passwd.charAt(i) : 0;
+ key[i] = i<pwdLen ? utf8str[i] : 0;
DesCipher des = new DesCipher(key);
for (int j = 0; j < vncAuthChallengeSize; j += 8)
des.encrypt(challenge,j,challenge,j);