【android】HTTP通信でPOST送信したい場合に文字のエンコードを指定する
// ミソ
new PrintStream(os, true, "SHIFT-JIS");
new InputStreamReader(is, "SHIFT-JIS");
それぞれStreamを定義する時にエンコードを指定してあげればOK
わかってみれば、なんてことないが、はまったので保存!!
// ソース(UTF-8)
String execute_query = "UTF8のデータです"; URL url = new URL("http://www.hoge.com/"); URLConnection uc = url.openConnection(); uc.setDoOutput(true); uc.setRequestProperty("Content-Type","text/plain"); OutputStream os = uc.getOutputStream(); PrintStream ps = new PrintStream(os,true,"SHIFT-JIS"); ps.print(execute_query); ps.close(); ps = null; InputStream is = uc.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(is, "SHIFT-JIS")); String s; while ((s = reader.readLine()) != null) { result = result + s; } reader.close();