Android 提交到web服务器的希伯来文字符串是';t用希伯来语收到

Android 提交到web服务器的希伯来文字符串是';t用希伯来语收到,android,hebrew,Android,Hebrew,我从我的应用程序向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<Nam

我从我的应用程序向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);
EditText email=(EditText)findviewbyd(R.id.email);
EditText密码=(EditText)findViewById(R.id.password);
EditText昵称=(EditText)findViewById(R.id.昵称);
列表参数=新的ArrayList(2);
add(新的BasicNameValuePair(“email”,email.getText().toString());
add(新的BasicNameValuePair(“password”,password.getText().toString());
add(新的BasicNameValuePair(“昵称”,昵称.getText().toString());
HttpClient HttpClient=新的DefaultHttpClient();
HttpPost请求=新的HttpPost(url);
setEntity(新的UrlEncodedFormEntity(params));
HttpResponse response=httpClient.execute(请求);

当我用希伯来语输入昵称时,它在服务器(php/apache)中作为与昵称长度相同的字符串接收,但带有“不可见”的字符,即看起来像空格。绝对不是希伯来语。有人知道吗?

我认为只要执行
request.setEntity(新的UrlEncodedFormEntity(params))将参数编码为默认的字符集(请参阅)


您可能应该使用
UrlEncodedFormEntity(ListThank。我会试试。但是我怀疑字符串是用utf8发布的,因为我在服务器端运行PHP的mb_detect_编码,它返回“utf8”。我想知道问题是否出在web端。如果你以UTF-8发送,但网页没有类似的内容,那么网站可能会错误地解释字符?我测试了它现在使用request.setEntity(新的UrlEncodedFormEntity(params,HTTP.UTF_8)),它就像一个符咒一样工作!谢谢!