6

URI の queryParameter をデコードして実行する必要があるユースケースがあります (この質問の範囲外)。

URI があり、それをデコードする必要があるとします。現在、すべての%20がスペースに変換され、URI の作成中にスペースを% 20で表す必要があることがわかりましたが、 %スペースとして使用して URI を取得する場合がある可能性があります。したがって、下位互換性を維持するために、 %スペースに変換したいと考えています。最後に、質問を理解するのに役立つメモがあります。

私は試しreplaceall() %てみまし%20たが、再び%20なり%2020、他の多くの例外があります。

NPCI の公式ドキュメントによると、これは UPI URI を読み取るために必要です。

注: 現在の PSP アプリは「%」をスペース (「 」) として読み取るように開発されていることを考慮すると、Bank PSP は、エコシステムがリビジョンに合わせられるまで、「%」と「%20」の両方をサポートする必要があります。したがって、下位互換性を確保する必要があります。

EDIT 1 pshemo コメントに基づく -

私が試してみました

str.replaceAll("%(?![0-9a-fA-F])","%20")

上記の正規表現を満たさないケースは、「upi://pay?pa=praksh%40kmbl&pn=Prakash%Abmar&cu=INR」です。

出力は pn -> Prakash" some othercharacter "mar

4

3 に答える 3