[英]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.