繁体   English   中英

如何解决翻译应用程序中的错误编码?

[英]how to fix wrong encoding in translation application?

我实现了一些翻译应用程序,并遇到了问题-输出错误。

例如:

输入:

“三个主要的故事交织在一起:几个家庭之间为争夺维斯特洛控制权而进行了王朝战争;休眠的超自然的冷酷的其他人的威胁不断上升​​,而其他人则居住在维斯特洛北部边界上巨大的冰墙之外;还有上午”

输出:

“%0D%0A%0D%0AThe +история+-+ A +Песня+из+Лед+и+ Fire +принимает++++вымышленный+континентах+Вестероса+и+ Essos%+ C + тысяч++лет。++Точка+++++главе+в+в+история+-+ a +ограниченной+перспектива+++ассортимент++симвовове++,+растет+ +тридцатьодин+++пятый+的+романов。 + of + the +спящие+ cold +сверхъестественное+Другие+жилье+за+ an +огромный+ wall ++лед+ on +Вестероса%27 +сев。границы%3B +и++

我知道URLEncoder是错误输出(所有这些“ +”和“%”)的原因,但不知道如何解决它。

这是一些代码:

        // This method should take an original text that should be 
        // translated and encode it to use as URL parameter.


     private String encodeText(String text) throws IOException {
                return URLEncoder.encode(text, "UTF-8"); 
            } 

    // It shold “extract” translated text from Yandex Translator response. 
    // More details about response format you can find at 
    // http://api.yandex.ru/translate/doc/dg/reference/translate.xml, 
    // we need to use XML interface.

        private String parseContent(String content)
                    throws UnsupportedEncodingException {
                String begin = "<text>";
                String end = "</text>";
                String result = "";
                int i, j;
                i = content.indexOf(begin);
                j = content.indexOf(end);
                if ((i != -1) && (j != -1)) {
                    result = content.substring((i + begin.length()), j);
                }
                return new String(result.getBytes(), "UTF-8");
            }

 // method translate() should return translation of original text.
 // urlSourceProvider loads translated text   
        public String translate(String original) throws IOException {
                return parseContent(urlSourceProvider
                        .load(prepareURL(encodeText(original))));
            }

尝试:

String result = URLDecoder.decode(variable, "UTF-8");

它应该解码您的文本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM