我正在尝试对一些字符串进行URL编码,但是使用.Net框架提供的方法存在问题。
例如,我试图对包含字符'â'的字符串进行编码。根据w3schools的说法,我期望该字符被编码为'%E2'(我必须调用的PHP系统也期望如此...)。
我尝试使用以下方法:
System.Web.HttpUtility.UrlEncode("â");
System.Web.HttpUtility.UrlPathEncode("â");
Uri.EscapeUriString("â");
Uri.EscapeDataString("â");
然而,它们都将这个字符编码为:%C3%A2。
我想这与.Net中的字符串是UTF-16编码有关。因此,为了避免这个问题,例如可以这样写:
"%" + ((int)character).ToString("X")
然而,我想知道这个框架是否已经有一个内置的方法(我在这里或其他地方找不到任何答案,为什么我的字符被编码成这种方式)?