从android发送阿拉伯语到PHP文件

时间:2012-05-02 07:41:32

标签: android arabic

尝试使用下面的代码将阿拉伯语文本从android发送到PHP文件

        Button.setOnClickListener(new OnClickListener(){

        public void onClick(View v) {
            // TODO Auto-generated method stub




    tv  = (TextView)findViewById(R.id.from_t);
    nv  = (TextView)findViewById(R.id.to_t);
    rd  = (TextView)findViewById(R.id.agent_u);



    try {


        postData();
    } 
    catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();

        } catch (UnsupportedEncodingException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}



public void postData() throws JSONException, UnsupportedEncodingException{  
    // Create a new HttpClient and Post Header

    HttpClient httpclient = new DefaultHttpClient();
    String url = "http://XXX.XXX.XXX.XXX/post.php";
    HttpPost post = new HttpPost(url);

    HttpParams params=post.getParams();
    JSONObject json = new JSONObject();
    params.setParameter(CoreProtocolPNames.HTTP_CONTENT_CHARSET, "ISO-8859-1,utf-8;q=0.7,*;q=0.7" );



    try {

        // JSON data:


        json.put("name", tv.getText());
        json.put("position",rd.getText());
        json.put("position1",nv.getText());

        JSONArray postjson=new JSONArray();

        postjson.put(json);



        post.setEntity(new ByteArrayEntity(json.toString().getBytes("UTF8")));


        post.setHeader("Accept-Charset", "UTF-8");
                    post.setHeader("json",json.toString());

        //this is somthing els


        System.out.print(json);
        HttpResponse response = httpclient.execute(post);

        Toast.makeText(getApplicationContext(), "SEND",Toast.LENGTH_SHORT).show();
        {
            InputStream is = response.getEntity().getContent();

            BufferedReader reader = new BufferedReader(new InputStreamReader(is));
            StringBuilder sb = new StringBuilder();

            String line = null;
            try {
                while ((line = reader.readLine()) != null) {
                    sb.append(line + "\n");
                }
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                try {
                    is.close();

                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            text = sb.toString();
        }



    }catch (ClientProtocolException e) {
        // TODO Auto-generated catch block
    } catch (IOException e) {
        // TODO Auto-generated catch block
        return; 
    }
}




    });

}

代码很好,但是如果我发送阿拉伯语文本,我会继续获取数字和拉丁字母。 任何帮助?谢谢

1 个答案:

答案 0 :(得分:1)

如果您不想在url中发送json,请使用这种方式。它可能对你有所帮助。

InputStream is;

ArrayList<NameValuePair> nameValuePairs1 = new ArrayList<NameValuePair>();

nameValuePairs1.add(new BasicNameValuePair("user_id", ""));
nameValuePairs1.add(new BasicNameValuePair("product_id", ""));
nameValuePairs1.add(new BasicNameValuePair("product_review",""+text));

HttpClient httpclient = new DefaultHttpClient();

HttpPost httppost = new HttpPost(URL);

httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs1));

HttpResponse responce = httpclient.execute(httppost);

HttpEntity entity = responce.getEntity();

is = entity.getContent();

BufferedReader bufr = new BufferedReader(new InputStreamReader(is,"iso-8859-1"), 8);

StringBuilder sb = new StringBuilder();

sb.append(bufr.readLine() + "\n");

String line = "0";

while ((line = bufr.readLine()) != null) 

{

sb.append(line + "\n");

}

is1.close();

result = sb.toString();