愚かなコードでユニコード文字を含むマルチパートリクエストを送信しようとしました:
HttpClient httpClient = new DefaultHttpClient();
HttpPost postRequest = new HttpPost(ServerUrl);
MultipartEntity reqEntity = new MultipartEntity(
HttpMultipartMode.BROWSER_COMPATIBLE,null,Charset.forName(HTTP.UTF_8));
reqEntity.addPart("uploaded", new FileBody(image));
Charset chars = Charset.forName(HTTP.UTF_8); // Setting up the encoding
reqEntity.addPart("paramName",new StringBody(new String(UNICODESTRING.getBytes("UTF-8"),"UTF-8"),chars));
サーバー側のサーブレット コードは次のとおりです。
List<FileItem> formItems = upload.parseRequest(request);
if (formItems != null && formItems.size() > 0) {
// iterates over form's fields
for (FileItem item : formItems) {
if (item.isFormField()) {
String fieldname = item.getFieldName();
String fieldvalue = item.getString();
if(fieldname.equals("paramName")){
System.out.println(">>>>>>>>>>>>> the branch name: "+new String(item.getString().getBytes("UTF-8"),"UTF-8"));
// then Save to DATABASE
}
println 行は、データベースにそのまま保存された ØªÙØªØªØ³ÙØªØªØ³ÙØªØ³ のような歪んだ文字を与えます!
誰でもその問題を解決するのを手伝ってもらえますか...
前もって感謝します 、