かめのはこ

とあるエンジニアのメモ帳です

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