Android:将带有JSON的EditText中的字符串发送到PHP-编码问题
我在用JSON将Android EditText的文本发送到PHP脚本时遇到了编码问题 首先在Android中,我从EditText元素获取文本Android:将带有JSON的EditText中的字符串发送到PHP-编码问题,php,android,encoding,utf-8,Php,Android,Encoding,Utf 8,我在用JSON将Android EditText的文本发送到PHP脚本时遇到了编码问题 首先在Android中,我从EditText元素获取文本 String s = editText.getText().toString(); 然后我通过HttpURLConnection将其发布到PHP脚本 HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("POST"); con
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()您可以尝试先修剪文本
String s = editText.getText().toString();
s = s.trim();
然后对文本进行编码
String encodeText= "";
try {
encodeText= URLEncoder.encode(s,"utf-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
不幸的是,这仍然不起作用。它不再为空,但变音符号不正确。