2011-09-13 29 views
3

で受信されていない私は私のアプリからWebサーバへのサインアップフォーム提出:ヘブライ語の文字列は、ヘブライ語

EditText email = (EditText)findViewById(R.id.email); 
EditText password = (EditText)findViewById(R.id.password); 
EditText nickname = (EditText)findViewById(R.id.nickname); 

List<NameValuePair> params = new ArrayList<NameValuePair>(2); 
params.add(new BasicNameValuePair("email", email.getText().toString())); 
params.add(new BasicNameValuePair("password", password.getText().toString())); 
params.add(new BasicNameValuePair("nickname", nickname.getText().toString())); 

HttpClient httpClient = new DefaultHttpClient(); 
HttpPost request = new HttpPost(url); 
request.setEntity(new UrlEncodedFormEntity(params)); 
HttpResponse response = httpClient.execute(request); 

を私はヘブライ語でニックネームを入力すると、それをサーバで受信されます(php/apache)は、ニックネームと同じ長さの文字列として "見えない"文字、つまり空白のように見えます。間違いなくヘブライ語ではない。どんな手がかり?

答えて

4

ちょうどrequest.setEntity(new UrlEncodedFormEntity(params));を実行すると、DEFAULT_CONTENT_CHARSET(http://developer.android.com/reference/org/apache/http/client/entity/UrlEncodedFormEntity.html参照)でパラメータがエンコードされていると思います。

おそらくUrlEncodedFormEntity(List<? extends NameValuePair> parameters, String encoding)フォームを使用する必要があります。 Froyo/Android 2.2では、必要なフォントを含むヘブライ語とアラビア語のテキストを表示するためのサポートが追加されましたが、まだヘブライ語の文字列を探しています...

"UTF-8"または "UTF-16"?

+0

ありがとうございました。私はそれを試みます。しかし私は文字列*がutf8でポストされていると思われます。なぜならPHPのmb_detect_encodingをサーバー側で実行してから 'UTF8'を返すからです。 – shaharsol

+0

問題がWeb側にあるのだろうかと思います。 UTF-8として送信しても、Webページにのようなものがない場合は、文字を解釈する? – Torid

+1

私は今それをrequest.setEntity(新しいUrlEncodedFormEntity(params、HTTP.UTF_8))でテストしました。それは魅力のように働いた!ありがとう! – shaharsol

関連する問題