我想在Java中将任何语言字符串转换为英语

时间:2014-09-14 06:50:46

标签: java string locale

我正在阅读印地文网站的供稿,并希望将其转换为英文。

public class ReadTest {

    public static void main(String [] args) throws UnsupportedEncodingException {
        RSSFeedParser parser = new RSSFeedParser("http://aajtak.intoday.in.feedsportal.com/c/34152/f/618432/index.rss?option=com_rss&feed=RSS1.0&no_html=1&rsspage=home");
        Feed feed = parser.readFeed();

        System.out.println(feed);
        for (FeedMessage message : feed.getMessages()) {
            System.out.println(message.getTitle());
            System.out.println(message.getDescription());
            System.out.println("Date : " + message.getPublishDate());
            System.out.println("-------------------------");
        }
    }
}

以上是我正在使用的代码,但它会打印如下所示。

Feed [copyright=, description=?? ??, language=en, link=http://aajtak.intoday.in, pubDate=Sun, 14 Sep 2014 06:10:50 GMT, title=?? ??]
?? ??
??? ??????? ???? ?? ?? ???? ??????. ??????? ?????? ?????? ?? ?????? ????? ????? ?? ???? ?????? ?????????? ??? ????...
Date : Sun, 14 Sep 2014 05:42:56 GMT
-------------------------
?????? ?? ???? ? ???? ?? ???? ???? ????, ?????-???? ???
????? ???????? ?????? ?? ?????? ??????? ????? ???? ???? ?? ?????? ????? ?????? ?? ?? ????? ?? ???? ?????? ??????...
Date : Sun, 14 Sep 2014 04:56:24 GMT

其中"?"正在打印印地文字符的地方。

1 个答案:

答案 0 :(得分:0)

您当前的问题与翻译无关(仍然不是......),但只与字符集有关。如果原始feed正确声明了自己的charset,那么Java内部使用unicode个字符并且可以读取它。

但我想你的系统使用的字符集不是Utf-8(Latin-1,Win1252,CP-850或CP437),也不能显示印地语字符。如果您使用Linux或其他类Unix,请确保使用的是UTF-8;如果您使用Windows,请尝试使用图形窗口(Swing)进行输出,因为我不知道命令行窗口(CMD.exe)如何处理unicode。

但如果你通过这一步,翻译是另一个更复杂的问题......