私のAndroidアプリはHTTP POST経由でPHPサーバーと通信します。 は、私は、パラメータ次のHTTPリクエストに追加します。HTTP Postは€を?に変換しますか?シンボル
nameValuePairs.add(new BasicNameValuePair("text", message));
メッセージは文字列で、実行しているサーバーのPHPで
€記号が含まれており、要求を取得します。 不幸にも€記号は自動的に?に変換されますか?シンボル。私も何も指定されていないPHPのサイトで
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://server.com/test.php");
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
をここにコードを:: 他のすべての記号は、私は何のエンコーディングを設定していないAndroidでは
SS、A、U、$」のように働いている。
を<?php
mysql_connect("blablaost.com", "blabla", "blabla") or die(mysql_error());
mysql_select_db("asfd") or die(mysql_error());
$mysqldate = gmdate('Y-m-d H:i:s');
$language = (int) $_REQUEST['language'];
mysql_query("blabla ... .$_REQUEST['text']. ")
or die(mysql_error());
mysql_close();
?>
$ _REQUEST [ 'テキスト']は€が含まれており、それがUrlEncodedFormEntityの第2の構成パラメータがトンである私に?
両方の側が送信している/期待しているエンコードを確認できますか? –
PHP側でurldecode()とrawurldecode()を使いこなすのは幸運ですか? どのように結果を確認していますか? –
PHPサーバの出力/入力エンコーディングはISO-8859-1と思われる。私はそれをmySQL DBに書いてチェックします。しかし、これは間違いではありません!私はurldecode()で何をすべきかわかりません。 – tobias