HttpURLConnection выводит поток символов китайского языка - PullRequest
0 голосов
/ 09 марта 2012

Я использую HttpUrlConnection для публикации вне json, но, похоже, китайские иероглифы меняются на ????? Я пробовал с другим стилем кодирования, таким как utf-16, big 5, но я не могу понять, что вызывает это. Когда я отлаживаю это, я вижу китайский символ перед публикацией, но когда сообщение, это меняет почему? код запчасти указан ниже

        String postData,String charset) throws MalformedURLException, IOException{
        URL url = new URL(targetUrl);
        HttpURLConnection connection = (HttpURLConnection) url.openConnection(
                                                                Proxy.NO_PROXY);
        connection.setConnectTimeout(postTimeout);
        connection.setDoOutput(true);
        connection.setInstanceFollowRedirects(false);
        connection.setRequestMethod("POST");
        connection.setRequestProperty("Content-Type", 
                                    contentType+"; charset="+charset);//+charset.getName().toUpperCase());//+charset.getName());



        sleep(sleepTime);
        OutputStream os = connection.getOutputStream();
        //"UnicodeBigUnmarked"
//        
//        byte[] bt= postData.getBytes();
//        System.out.println(bt);
//        os.write(bt);
//        System.out.println();
//        os.flush();
        //System.out.println(postData);
        try
        {
            Writer writer = new OutputStreamWriter(os, charset);
            writer.write(postData);
            writer.flush();
            writer.close();
        } catch (IOException e) {
            logger.severe("Http POST exception");

        } finally {
            if (os != null) {
                os.close();
            }
        }



       int responseCode = connection.getResponseCode();

       connection.disconnect();

       return responseCode;

Я пробовал с big5, utf-16, но все равно без изменений.

Спасибо.

1 Ответ

1 голос
/ 09 марта 2012

Я считаю, что вы должны использовать unicode ascii-safe представление в JSon, как объяснено здесь

...