用java打开带有西里尔字符的浏览器(utf 16?)

时间:2012-04-21 10:40:26

标签: java character-encoding

有人可以帮助解决字符串问题吗?有关如何使用java程序中的kyrillic charaters打开浏览器的任何想法吗?

在我的JAVA程序中,我有一个带有抒情字符的字符串。这是一个URL,我喜欢使用它来打开带有'ProcessBuilder'的浏览器。浏览器打开但在网址中没有出现抒情字符。只有???????????。

如何从java程序中使用kyrillic charaters打开浏览器?

问候

            String url = "https://www.google.ch/search?q=" + sKyrillic + "&hl=de&client=firefox-a&hs=hzU&rl......";
        try {
            new ProcessBuilder("rundll32", "url.dll,FileProtocolHandler", url).start();
        } catch (IOException ex) {
            ex.printStackTrace();
        }

1 个答案:

答案 0 :(得分:2)

使用URLEncoder将值编码为application/x-www-form-urlencoded。例如:

String cyrillic_letter_i = "\u0418";
String encoded = URLEncoder.encode(cyrillic_letter_i, "UTF-8");
String google = "https://www.google.ch/search?q="
              + encoded
              + "&hl=de&client=firefox-a&hs=hzU&rl......";
URI uri = URI.create(google);
Desktop.getDesktop().browse(uri);