我正在通过使用方法base64
在btoa()
中将它们转换为查询字符串来发送一些参数。我只想知道,我是否还需要将结果包装到encodeURI
方法中,以将正确的信息传递给URL中的服务器。
例如:
http://example.com/{name}
-对此,下面哪个是正确的? "http://example.com/" + btoa("some-name")
"http://example.com/" + encodeURI(btoa("some-name"))
答案 0 :(得分:0)
您只需要将字符串转换为Base64。有关C#,请参见this SO answer:
var plainTextBytes = System.Text.Encoding.UTF8.GetBytes(plainText);
return System.Convert.ToBase64String(plainTextBytes);
您也可以阅读the reason why we use Base 64。
此后无需使用诸如encodeURI
之类的方法,那将毫无用处,因为Base 64的所有字符(AZ,az,0-9,=,+)are not escaped:>
encodeURI会转义所有字符,除了:
A-Z a-z 0-9 ; , / ? : @ & = + $ - _ . ! ~ * ' ( ) #
顺便说一下,encodeURI
和btoa
是关于JavaScript的,而不是标签中提到的asp.net。