我在www.example.com浏览种子KickAssTorrents.com,当我访问一个链接时,它以不同的方式编码在URL中;
例如(IMDb链接):http://kat.ph/account/confirm/url/aHR0cDovL3d3dy5pbWRiLmNvbS90aXRsZS90dDA0MDE3Mjk=/
现在,当我改变一个字符时,链接中的内容会发生变化,我想知道如何在C#或jQuery中做到这一点?!
我在www.example.com浏览种子KickAssTorrents.com,当我访问一个链接时,它以不同的方式编码在URL中;
例如(IMDb链接):http://kat.ph/account/confirm/url/aHR0cDovL3d3dy5pbWRiLmNvbS90aXRsZS90dDA0MDE3Mjk=/
现在,当我改变一个字符时,链接中的内容会发生变化,我想知道如何在C#或jQuery中做到这一点?!
5条答案
按热度按时间3bygqnnd1#
在C#中:
如果字符串
toEncode
包含ASCII以外的字符,则使用System.Text.UTF8Encoding.UTF8.GetBytes(...)
。请注意,在这种情况下,解码URL的任何一方都必须能够正确处理这些字符。另外,请查看大卫哈丁提到的
=
、+
和/
中的the case,看看是否有任何提到的问题适用于您。或者使用大卫的answer。jQuery:google 'jquery base64 encode'(网站plugins.jquery.com目前似乎离线,所以我无法确定是否可以检查)
4dbbbstv2#
最好使用下面来自https://stackoverflow.com/a/1789179的代码
原因是Base64包含无效的URL字符。
3ks5zfa03#
JavaScript-
kgsdhlau4#
我不认为尤金·里亚布采夫的公认答案是正确的。如果你尝试使用“\xff”,你会看到:
原因是ASCIIEncoding并没有超过代码127。128到255之间的所有字符都将无法识别,并将转换为“?“.
因此,扩展编码是必要的,如下:
7gcisfzg5#
对Base64 Url Safe中的字符串进行编码/解码(更多信息:https://en.wikipedia.org/wiki/Base64#URL_applications)最好的方法是使用
Base64UrlEncoder
从Microsoft.IdentityModel.Tokens
命名空间https://learn.microsoft.com/en-us/dotnet/api/microsoft.identitymodel.tokens.base64urlencoder?view=msal-web-dotnet-latest