2011-06-27 21 views
2

NxParserライブラリを使用してテキストファイル(RDF)を読んでいます。%エンコードされた文字を「通常」の値に変換する

「エンコード済み」の文字がたくさんあります。私はそれらを表示したいとき

  1. 私はエンコードおよび「復号」、それらを持つ単語を保存すべきか、私はデータを格納するためにMySQLを使用しています(それらをデコードし、それらを保存する必要があります。私の質問は2倍です)私は予約文字を解読するにはどうすればよい

  2. (それはどんな違いがあれば)、私はいくつかの入力を取得し、同じ単語の「素敵な」バージョンをプリントアウトすることができ、ライブラリを見つけるためにしようとしてきた

私はいくつかの文字を '通常の'と同様にsomeString.replaceAll("%28","(").replaceAll("%29",")。これは正常に動作しますが、書き込むのに時間がかかり、おそらく実行するのが遅くなります(replaceAll()がたくさん呼び出された場合)。

+0

ありがとうございました – Ankur

答えて

1

私はそれらを表示したいとき、私は[...]エンコーディングと言葉と「復号」、それらを保存する必要がありますか?

私は「符号化されていない」、それらを保存し、あなたがそれらを表示したいときにそれらをエンコードします。 (異なる(未来?)表示メカニズムが異なるエンコーディングを必要とするかもしれない!)私は予約文字を解読するにはどうすればよい

は、私はいくつかの入力を取得してからプリントアウトすることができ、ライブラリを見つけるためにしようとしてきました "同じ単語

の素敵な」バージョンは、あなたは、この目的のためにURLDecoderを使用する必要があります。

例:

System.out.println(URLDecoder.decode("Hello %28 world", "UTF-8")); 

出力:

Hello (world 
3

私はあなたが%エンコードされた要素をデコードするjava.net.URLDecoderを使用したいと思います。もちろんこれを補うものはjava.net.URLEncoderで、これは%要素に特殊文字をエンコードします。

+0

ありがとう、私はそれを試してみます。 – Ankur

1
  1. デコードされた値を保存することをお勧めします。
    値はデータベースに保存されているため、エンコードされたままにする必要はありません。読みにくいエンコードされたバージョンではなく、実際のデコードされた値を持つことが明確になります。要件に応じて、これらの値をどこかで使用する前にエンコードすることができます。
  2. 使用java.net.URLDecoderこれらの値
+0

"デコードされた値を保存するのが最善でしょう" ...あなたが何か特別な理由があるかどうか疑問に思っていました。 – Ankur

+0

答えを編集しました。 – wjans

+0

ありがとうございました、それは私が今のところ良くなっているので、私が行ったことです。 – Ankur

1

あなたは、文字列 "URLエンコード" を持ってデコードします。試してみてください:

import java.net.URLDecoder; 

String someString = "%28test%29"; 
String decoded = URLDecoder.decode(url, "UTF-8"); 
System.out.println(decoded); // "(test," 
関連する問題