Строки на иврите, отправленные на веб-сервер, на иврите не принимаются - PullRequest
3 голосов
/ 13 сентября 2011

Я отправляю форму регистрации из моего приложения на веб-сервер:

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) в виде строки той же длины, что и псевдоним, но с символами, которые являются «невидимыми», то есть выглядят как пробелы. определенно не иврит. Любая подсказка кого-то?

1 Ответ

4 голосов
/ 14 сентября 2011

Я думаю, что просто выполнение 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"?

...