2

HTTP 経由でローカル ファイルをエクスポートするプロジェクトに取り組んでいます。これには、ファイル URI の取得、エクスポートされたパスを使用した相対化、エクスポート URI への追加、受信側での URL としての処理が含まれます。

通常はこれで問題なく動作しますが、ファイル名にセミコロンが含まれていると問題が発生します。ここまで絞りました。

new File(path).toURI()

上記の方法は、スペースなどを正しくエンコードしますが、セミコロン (%3B にエンコードする必要があります) はエンコードしません。

最終的に、上記のメソッドは URI コンストラクタ (プロトコル、ホスト、パス、フラグメント) の結果を返しますが、これは不正な URI を返します。

すべてのセミコロンを手動で %3B に置き換えることもできますが、それは最善の解決策とは思えません。パスを正しくエンコードするための組み込み API は本当にないのでしょうか?

ご協力いただきありがとうございます。

4

2 に答える 2

2

セミコロンは、URI で完全に有効な文字です。もちろん、受信側が特別な区切り文字としてセミコロンを使用する場合、送信側はそれをエスケープする必要があります。しかし、それは標準的な慣行の範囲外であるため、自分で回避する必要があります。

しかし、Java の世界ではサーブレットが標準であり、特別な区切り文字としてセミコロンを使用します。そこで役立つユーティリティを私は知らないので、手動でセミコロンをエスケープする必要があります。

于 2013-04-16T19:20:40.480 に答える