我再次需要你的帮助。我想将特殊字符从 Android 应用程序发送到 PHP 脚本,反之亦然。
安卓代码
...
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://www.mypage.com/script.php");
try {
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
nameValuePairs.add(new BasicNameValuePair("value", "Español"));
post.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = client.execute(post);
StatusLine statusLine = response.getStatusLine();
if(statusLine.getStatusCode() == HttpURLConnection.HTTP_OK){
InputStream inps = response.getEntity().getContent();
InputStreamReader inp = new InputStreamReader(inps, Charset.forName("ISO-8859-2"));
BufferedReader rd = new BufferedReader(inp);
StringBuilder stringBuilder = new StringBuilder();
String bufferedStrChunk = null;
while ((bufferedStrChunk = rd.readLine()) != null) {
stringBuilder.append(bufferedStrChunk);
}
Result = stringBuilder.toString();
}...
PHP 代码
<?php
header("Content-Type: text/plain;charset=ISO-8859-2");
echo $_POST["value"];
?>
第一步
我正在尝试将字符串“Español”从 Android 发送到 PHP。我将字符串存储到 MySQL 表(UNICODE 字符集)中,并且正确获取了字符串。我还得到了每个字符的整数值。结果是“Español”和“69.115.112.97.241.111.108”。因此,Android 将字符“ñ”发送为 241,在 UNICODE 图表中定义为“ń”。请参阅http://www.ssec.wisc.edu/~tomw/java/unicode.html#x0080
第二步
我将字符串从 PHP 返回到 Android,而不是得到“ñ”,而是得到“ń”。这是我迷路的地方。这种情况什么时候发生变化,为什么具有相同的数值它们是不同的?这对我来说太多了,我请求你的帮助。提前致谢!