我需要你再次幫助這個。我想從Android應用程序發送特殊字符到PHP腳本,反之亦然。Android和PHP之間的特殊字符
的Android代碼
...
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"];
?>
第一招
我想從Android發送字符串「Español」到PHP。我將該字符串存儲到一個MySQL表(UNICODE字符集)中,並正確地獲取了字符串。我也得到每個字符的整數值。結果是「Español」和「69.115.112.97.241.111.108」。所以,Android發送字符「ñ」爲241,在UNICODE Chart中定義爲「ñ」。看到它的http://www.ssec.wisc.edu/~tomw/java/unicode.html#x0080
第二招
我從PHP返回字符串到Android和,而不是讓「N」我得到的「N」。這是我迷失的地方。這種變化是什麼時候,爲什麼有相同的數值,他們是不同的?這對我來說太過分了,我請求你的幫助。提前致謝!
爲什麼你不使用UTF-8? – Rufinus 2012-04-05 13:11:57
在發送任何東西之前使用'base64'。我做了什麼以及它的工作 – Baba 2012-04-05 13:13:22