Android 区分发送到Web服务器的数据的语言?

Android 区分发送到Web服务器的数据的语言?,android,webserver,android-webservice,Android,Webserver,Android Webservice,我正在将印地语/英语/马拉地语数据发布到服务器。如果数据是英文的,服务器端可以检测到,但是如果数据是印地语/马拉地语的,服务器端无法检测到。我使用下面提到的代码来实现这个- public static String sendDataToServer(String urlString, String parameter) { try { if (TextUtils.isEmpty(urlString) || TextUtils.isEmpty(parameter))

我正在将印地语/英语/马拉地语数据发布到服务器。如果数据是英文的,服务器端可以检测到,但是如果数据是印地语/马拉地语的,服务器端无法检测到。我使用下面提到的代码来实现这个-

public static String sendDataToServer(String urlString, String parameter) {
    try {

        if (TextUtils.isEmpty(urlString) || TextUtils.isEmpty(parameter))
            return null;

        URL url = new URL(urlString);
        HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
        urlConnection.setRequestMethod("POST");
        urlConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
        urlConnection.setDoInput(true);
        urlConnection.setDoOutput(true);
        urlConnection.setFixedLengthStreamingMode(parameter.length());
        urlConnection.setReadTimeout(10000);
        urlConnection.setConnectTimeout(45000);
        urlConnection.connect();

        DataOutputStream dataOutputStream = new DataOutputStream(urlConnection.getOutputStream());
        dataOutputStream.writeBytes(parameter);
        dataOutputStream.flush();
        dataOutputStream.close();

        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));

        String input;
        StringBuilder stringBuilder = new StringBuilder();

        while ((input = bufferedReader.readLine()) != null) {
            stringBuilder.append(input);
        }
        bufferedReader.close();

        return stringBuilder.toString();
    } catch (IOException e) {
        e.printStackTrace();
        return null;
    }
}
我也尝试过设置编码,但仍然不起作用。下面提到的是我对数据进行编码的代码-

 public static String submitDataToServer(String urlString, String parameter1, String parameter2) {
    try {

        Uri.Builder builder = new Uri.Builder()
                .appendQueryParameter(Constants.USER_NAME, parameter1)
                .appendQueryParameter(Constants.USER_REVIEW, parameter2);

        String query = builder.build().getEncodedQuery();

        URL url = new URL(urlString);
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        conn.setReadTimeout(10000);
        conn.setConnectTimeout(15000);
        conn.setRequestMethod("POST");
        conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
        conn.setDoInput(true);
        conn.setRequestProperty("Content-Length", "" + query.getBytes().length);
        conn.setDoOutput(true);

        OutputStream os = conn.getOutputStream();
        BufferedWriter writer = new BufferedWriter(
                new OutputStreamWriter(os, "UTF-8"));
        writer.write(query);
        writer.flush();
        writer.close();
        os.close();

        conn.connect();


        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(conn.getInputStream()));

        String input;
        StringBuilder stringBuilder = new StringBuilder();

        while ((input = bufferedReader.readLine()) != null) {
            stringBuilder.append(input);
        }
        bufferedReader.close();

        return stringBuilder.toString();

    } catch (Exception e) {
        e.printStackTrace();
        return null;
    }
}
请让我知道,如果我在这个代码中做了什么错误。同时让我知道哪种方法适合我的要求


提前感谢。

手动编码参数,而不是将字符编码(UTF-8)传递给OutputStreamWriter。 尝试执行以下操作:

byte[] paramBytes = param.getBytes("UTF-8"); 


如果服务器无法检测到它,您不应该在服务器端解决这个问题吗?您在哪里托管过?您可以将api代码粘贴到这里吗
Charset.forName("UTF-8").encode(param);