title: Upload file to server with traditional Chinese file name
body: <p>My code:</p>
  
  <pre><code>public static  String newName =""; //the traditional Chinese file name
  public static  String uploadFile ="";  //the file path contain traditional Chinese
  public static  String ActionUrl ="";  //the server
  
  public static void upload() {
  String end = "\r\n";
  String twoHyphens = "--";
  String boundary = "*****";
  try {
  URL url = new URL(ActionUrl);
  HttpURLConnection con = (HttpURLConnection) url.openConnection();
  con.setDoInput(true);
  con.setDoOutput(true);
  con.setUseCaches(false);
  con.setRequestMethod("POST");
  con.setRequestProperty("Connection", "Keep-Alive");
  con.setRequestProperty("Accept", "text/*");
  con.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + boundary);
  DataOutputStream ds = new DataOutputStream(con.getOutputStream());
  ds.writeBytes(twoHyphens + boundary + end);
  ds.writeBytes("Content-Disposition: form-data;" + "name=\"folder\"" + end + end + "/mnt/HD/HD_a2/test/" + end);
  ds.writeBytes(twoHyphens + boundary + end);
  ds.writeBytes("Content-Disposition: form-data;" + "name=\"Filedata\"; filename=\"" + newName + "\"" + end);
  ds.writeBytes(end);
  FileInputStream fStream = new FileInputStream(uploadFile);
  int bufferSize = 1024;
  byte[] buffer = new byte[bufferSize];
  int length = -1;
  while((length = fStream.read(buffer)) != -1) {
  ds.write(buffer, 0, length);
  }       
  ds.writeBytes(end);
  ds.writeBytes(twoHyphens + boundary + twoHyphens + end);
  fStream.close();
  ds.flush();
  InputStream is = con.getInputStream();
  int ch;
  StringBuffer b = new StringBuffer();
  while((ch = is.read()) != -1) {
  b.append((char)ch);
  }
  System.out.println("UPLOAD" + "SUCCESS");
  ds.close();
  }
  catch(Exception e) {
  e.printStackTrace();
  }
  }
  </code></pre>
  
  <p>It upload file success, but it show the garbled file name.
  How to modify it?</p>