希伯来语中未收到提交给Web服务器的希伯来语字符串

时间:2011-09-13 19:45:50

标签: android hebrew

我从我的应用程序向网络服务器提交注册表单:

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 个答案:

答案 0 :(得分: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”?