.net UrlEncode - lowercase problem

后端 未结 7 980
梦如初夏
梦如初夏 2020-11-27 19:56

I\'m working on a data transfer for a gateway which requires me to send data in UrlEncoded form. However, .net\'s UrlEncode creates lowercase tags, and it breaks the transfe

7条回答
  •  北海茫月
    2020-11-27 20:28

    Replace the lowercase percent encoding from HttpUtility.UrlEnocde with a Regex:

    static string UrlEncodeUpperCase(string value) {
        value = HttpUtility.UrlEncode(value);
        return Regex.Replace(value, "(%[0-9a-f][0-9a-f])", c => c.Value.ToUpper());
    }
    
    var value = "SomeWords 123 #=/ äöü";
    
    var encodedValue = HttpUtility.UrlEncode(value);
    // SomeWords+123+%23%3d%2f+%c3%a4%c3%b6%c3%bc
    
    var encodedValueUpperCase = UrlEncodeUpperCase(value);
    // now the hex chars after % are uppercase:
    // SomeWords+123+%23%3D%2F+%C3%A4%C3%B6%C3%BC
    

提交回复
热议问题