- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我试图从 Web API 项目中移除对 System.Web.dll
的依赖,但无意中发现了对 HttpServerUtility.UrlTokenEncode(byte[] input)
的调用(及其相应的解码方法),我不知道用什么来替换以确保向后兼容。文档说这个方法
Encodes a byte array into its equivalent string representation using base 64 digits, which is usable for transmission on the URL.
我尝试用 Convert.ToBase64String(byte[] input)
代替(及其相应的解码方法),这在文档中有非常相似的描述:
Converts an array of 8-bit unsigned integers to its equivalent string representation that is encoded with base-64 digits.
然而,它们似乎并不完全等同;当使用 Convert.FromBase64String(string input)
解码用 HttpServerUtility
编码的字符串时,我得到一个异常说明
The input is not a valid Base-64 string as it contains a non-base 64 character, more than two padding characters, or an illegal character among the padding characters.
这两个转换实用程序有什么区别?消除对 System.Web.HttpServerUtility
的这种依赖的正确方法是什么?
一些用户建议这是 this one 的副本,但我不同意。这个问题是关于以 url 安全方式一般对字符串进行 base-64 编码,但我需要重现 HttpServerUtility
的确切行为> 但不依赖于 System.Web
。
最佳答案
我相信了 DGibbs 的话,并且 Used Source .事实证明,HttpServerUtility
方法中发生了以下情况:
使用 System.Convert
将输入转换为 Base64。
将+
替换为-
,将/
替换为_
。示例:Foo+bar/===
变为 Foo-bar_===
。
将字符串末尾的任意数量的 =
替换为表示它们有多少的整数。示例:Foo-bar_===
变为 Foo-bar_3
。
用相同数量的 =
符号替换字符串末尾的数字。示例:Foo-bar_3
变为 Foo-bar_===
。
将-
替换为+
,将_
替换为/
。示例:Foo-bar_===
变为 Foo+bar/===
。
使用 System.Convert
解码来自 Base64 的预处理输入。
关于c# - Convert.ToBase64String(byte[]) 和 HttpServerUtility.UrlTokenEncode(byte[]) 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35430084/
我正在将一个针对 net472 的项目移植到 netstandard。我遇到的最后一个 System.Web 依赖项是 HttpServerUtility.UrlTokenEncode(Byte[])
我在 C# 中有一段代码对字符串进行编码并返回 URL 安全字符串(稍后解码) string stringToEncrypt = "Winter is coming"; byte[] bytes =
我在尝试用 Java 编码 String 时遇到了麻烦。 我有以下 C# 代码和字符串 Bpz2Gjg01d7VfGfD8ZP1UA==,当我执行 C# 代码时,我得到: QnB6MkdqZzAxZD
如何使用 HttpServerUtility.UrlTokenDecode 在 Java 中编码将在 C# 中解码的字符串? 最佳答案 以下方法复制了 C# 功能。 public static Str
我试图从 Web API 项目中移除对 System.Web.dll 的依赖,但无意中发现了对 HttpServerUtility.UrlTokenEncode(byte[] input) 的调用(及
我是一名优秀的程序员,十分优秀!