Android 使用Volley库的StringRequest类向web服务发送Unicode请求
我的URL中有一些使用StringRequest类发送的Unicode字符。一旦我把它们放到服务器上,它们就不能以正确的格式表示。我从服务器接收数据时遇到了相同的问题,通过重写parseNetworkResponse方法解决了这个问题。我该怎么办Android 使用Volley库的StringRequest类向web服务发送Unicode请求,android,unicode,android-volley,Android,Unicode,Android Volley,我的URL中有一些使用StringRequest类发送的Unicode字符。一旦我把它们放到服务器上,它们就不能以正确的格式表示。我从服务器接收数据时遇到了相同的问题,通过重写parseNetworkResponse方法解决了这个问题。我该怎么办 StringRequest request = new StringRequest(Method.GET, url, new Response.Listener<String>() {
StringRequest request = new StringRequest(Method.GET, url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
// ...
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d(TAG, "Error: " + error.getMessage());
}
}) {
@Override
protected Response<String> parseNetworkResponse(
NetworkResponse response) {
// TODO Auto-generated method stub
String strUTF8 = null;
try {
strUTF8 = new String(response.data, "UTF-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return Response.success(strUTF8,
HttpHeaderParser.parseCacheHeaders(response));
}
public java.util.Map<String, String> getHeaders()
throws com.android.volley.AuthFailureError {
HashMap<String, String> headers = new HashMap<String, String>();
return headers;
}
};
StringRequest-request=新的StringRequest(Method.GET,url,
新的Response.Listener(){
@凌驾
公共void onResponse(字符串响应){
// ...
}
},new Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
d(标记“Error:+Error.getMessage());
}
}) {
@凌驾
受保护的响应parseNetworkResponse(
网络响应){
//TODO自动生成的方法存根
字符串strUTF8=null;
试一试{
strUTF8=新字符串(response.data,“UTF-8”);
}捕获(不支持的编码异常e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
返回响应。成功(strUTF8,
HttpHeaderParser.parseCacheHeaders(响应));
}
public java.util.Map getHeaders()
抛出com.android.volley.AuthFailureError{
HashMap headers=新的HashMap();
返回标题;
}
};
假设阿拉伯语是字符串,为什么不试试这个:
URI.encode("10.0.2.2/test.php?key=20893&rt=add&w1='تست'&w2='تست'").
您要发送什么类型的字符串?”“这是我的url,我认为url中不支持这些字符。尝试对它们进行url编码。错误的url http%3A%2F%2F10.0.2.2%2Ftest.php%3Fkey%3D20893%26rt%3dd%26w1%3D%D8%AA%D8%B3%D8%AA%26w2%3D%D8%AA%D8%B3%D8%AAI通过只编码Unicode值并放入我的url字符串来实现,效果很好。