3
4

6 に答える 6

2

こうすれば

DefaultHttpClient httpclient= new DefaultHttpClient();
                HttpPost httppost = new HttpPost("http://www.xxxxxxxx.com/thescript.php");
                Log.e("done 1st","its here");

                try
                {
                    ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
                    nameValuePairs.add(new BasicNameValuePair("name", Name.getText().toString()));
                    nameValuePairs.add(new BasicNameValuePair("sex",  Sex.getText().toString()));
                    nameValuePairs.add(new BasicNameValuePair("nationality",  Nationality.getText().toString()));

                    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs, "UTF-8")); //UPDATE HERE
                    HttpResponse response = httpclient.execute(httppost);
                    Log.e("done", String.valueOf(response));
                }
于 2013-09-30T07:14:55.030 に答える
1

Unicode 文字を受け入れないため、型は varchar であってはなりません。nvarchar に更新してください。

アンドリーズが言ったように、照合は utf8_general_ci または他の Unicode 照合にも設定する必要があります。

編集:

したがって、MySQL v5.x を使用しているため、構成ファイル (my.cnf など) が必要です。スーパーユーザーを使用してデータベースにアクセスしていないことを確認する必要があります。これを構成ファイルに追加します。

[mysqld]
init_connect='SET collation_connection = utf8_general_ci; SET NAMES utf8;'
default-character-set=utf8
character-set-server=utf8
collation-server=utf8_general_ci

これにより、すべての接続で utf8_general_ci を使用するようにトリガーされます。

MySQL を再起動し、mysqld.log がエラーを返さない場合は、再起動する必要があります。

于 2013-09-27T16:11:28.630 に答える
0

テーブル照合を utf8_general_ci またはその他の Unicode 照合に変更する必要があります。Latin1 はアラビア文字を表すことができません。

于 2013-09-27T15:58:23.467 に答える
0

私はこの問題を1週間にわたって抱えていて、検索して検索しました.@birajがこの問題を解決する唯一の方法で提案した解決策です! データベースを変更したり、php または .... で UTF-8 を設定したりする必要はありません。

httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs, "UTF-8"));

そして、この問題は永久になくなりました。

于 2017-08-23T08:57:29.957 に答える
-1

正しい (UTF-8) Charset を UrlEncodedFormEntity コンストラクターに渡す必要があります。

于 2013-09-28T04:56:31.130 に答える