これについてもまたあなたの助けが必要です。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からPHPに文字列「Español」を送信しようとしています。文字列をMySQLテーブル(UNICODE文字セット)に保存すると、文字列が正しく取得されます。各文字の整数値も取得します。結果は「Español」と「69.115.112.97.241.111.108」です。したがって、Androidは文字「ñ」を241として送信します。これは、UNICODEチャートでは「ń」として定義されています。http://www.ssec.wisc.edu/~tomw/java/unicode.html#x0080でそれを参照してください
2番目の動き
PHPからAndroidに文字列を返し、「ñ」を取得する代わりに「ń」を取得します。ここが私が迷子になっているところです。これはいつ変更され、同じ数値を持つのはなぜ異なるのですか?これは私には多すぎるので、あなたの助けを求めます。前もって感謝します!