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);