在使用JSON向PHP脚本发送文本时,我对使用Android EditText编码文本时遇到了麻烦。
首先在Android中我从EditText元素中获取文本。
String s = editText.getText().toString();
然后我将它通过HttpURLConnection发布到PHP脚本
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/json;charset=UTF-8");
conn.setRequestProperty("Accept", "application/json");
conn.setDoOutput(true);
conn.setDoInput(true);
JSONObject jsonParam = new JSONObject().put("mystring", s);
DataOutputStream os = new DataOutputStream(conn.getOutputStream());
os.writeBytes(jsonParam.toString());
os.flush();
os.close();
然后我在PHP脚本中解析JSON:
$data = json_decode(utf8_decode(file_get_contents('php://input')), true);
一切正常,但是当我尝试发送带有变音符号的文本时,似乎没有任何内容发送,var_dump($ data)为空。格式化有什么问题或可能是什么问题?
感谢您的帮助。
修改
Elsunhoty回答有效,但我必须在PHP中使用urldecode()
答案 0 :(得分:0)
你可以尝试修剪你的文字
String s = editText.getText().toString();
s = s.trim();
然后编码文本
String encodeText= "";
try {
encodeText= URLEncoder.encode(s,"utf-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}