簡體   English   中英

將Unicode字符串轉換為帶有'%XX'字符的轉義ASCII字符串

[英]Convert unicode string to an escaped ASCII string with '%XX' characters

我有Java代碼,它獲取帶有UTF字符的URL,應將其轉換為“轉義”字符,例如%A4%FD等。

有沒有辦法進行這種轉換?

看一看java.net.URLEncoder。 或者,您可以基於String.format制作自己的編碼器:

char c = 'Ë';
String hex = System.out.printf("%%%02X%%%02X", c & 0xFF, (c >> 8) & 0xFF);

這會將c轉換為%CB%00

隱蔽字符串:

    String s = "1Ë2";
    StringBuilder sb = new StringBuilder();
    for(char c : s.toCharArray()) {
        if (c > 128) {
            sb.append(String.format("%%%02X%%%02X", c & 0xFF, (c >> 8) & 0xFF));
        } else if (c == '%'){
            sb.append("%%");
        } else {
            sb.append(c);
        }
    }
    System.out.println(sb);

結果:

1%CB%002

只需使用此:URLEncoder.encode(str2,“ utf-8”)

暫無
暫無

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

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