Jak parsować URI jak w Javie

Próbuję przeanalizować następujący identyfikator URI:http: //translate.google.com/#zh-CN | en | 你

ale otrzymałem ten komunikat o błędzie:

java.net.URISyntaxException: Illegal character in fragment at index 34: http://translate.google.com/#zh-CN|en|你
        at java.net.URI$Parser.fail(URI.java:2809)
        at java.net.URI$Parser.checkChars(URI.java:2982)
        at java.net.URI$Parser.parse(URI.java:3028)

Ma problem z „|” postać, jeśli pozbędę się „|”, ostatni chiński znak nie powoduje żadnego problemu, jaki jest właściwy sposób, aby sobie z tym poradzić?

Moja metoda wygląda tak:

  public static void displayFileOrUrlInBrowser(String File_Or_Url)
  {
    try { Desktop.getDesktop().browse(new URI(File_Or_Url.replace(" ","%20").replace("^","%5E"))); }
    catch (Exception e) { e.printStackTrace(); }
  }

Dzięki za odpowiedzi, ale rozwiązanie BalusC wydaje się działać tylko dla instancji adresu URL, moja metoda musi działać z każdym adresem URL, który mu przekazuję, jak by wiedział, gdzie jest punkt początkowy, aby wyciąć url na dwie części i tylko kodować druga część ?

questionAnswers(7)

yourAnswerToTheQuestion