簡體   English   中英

URLEncoder僅編碼某些UTF-8字符,而不是全部編碼

[英]URLEncoder to encode only certain UTF-8 characters not all in a string

假設我有一個網址

字符串url =“ http://myweb.com/page1?param1=Financiëleresultaten&param2 =consùmer”

我想要URLEncode.encode(url,“ UTF-8”)這個字符串。 我只想對空格和&符(&)進行編碼,以保持(ë和ù)完好無損。 因此最終網址應為

http://myweb.com/page1?param1=Financiële%20resultaten%27param2=consùmer

如何在Java中實現呢?

首先,請記住,僅應使用URIEncode編碼查詢參數。 所以您要編碼的是“?”之后 字符。

這個問題的另一個問題是,您實際上並不想對整個查詢進行編碼。 因此,沒有任何方法可以對某些特定字符進行編碼。 然后,您的問題可以轉換為“如何用某些其他字符替換某些字符”之類的內容。 因此,您可能要對要更改的字符使用replaceAll方法,或者如果要單獨編碼字符,則應該使用indexOf方法,然后應該合並。

開始使用replaceAll方法的方法類似於:

String query = "page1?param1=Financiële resultaten&param2=consùmer";
query.replaceAll("\\s+","%20");

然后,該字符串變為“ page1?param1 =Financiële%20resultaten&param2 =consùmer”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM