我想解码Base 64中的特殊字符,我想在其中包含空格.请告诉我如何在base 64编码和解码中处理空间.
<add key="SpecialCharacter" value="w6J8YSzDoXxhLMOlfGEsw6R8YSzDo3xhLMOmfGFlLMSNfGMsw6l8ZSzDqHxlLMOqfGUsw6t8ZSzDu3x1LMO6fHUsw7x8dSzDuHxvLMOzfG8sw7R8byzDtnxvLMOyfG8sxaF8byxgfCwnfCzFgnxsLMW8fHo="/>
Run Code Online (Sandbox Code Playgroud)
看看这些功能:
public static string ToBase64(this string value)
{
byte[] bytes = Encoding.Default.GetBytes(value);
return Convert.ToBase64String(bytes);
}
public static string FromBase64(this string value)
{
byte[] bytes = Convert.FromBase64String(value);
return Encoding.Default.GetString(bytes);
}
Run Code Online (Sandbox Code Playgroud)
第一个将字符串转换为基本64字符串.
例如: string base64 = "Hello World!".ToBase64()
第二个将它返回到"普通"字符串:
string original = base64.FromBase64()
核心功能在于Convert.FromBase64String(string value).它返回一个字节数组,必须将其转换为字符串Encoding.当您知道使用的编码时,您可以使用它而不是默认值(UTF-16,我认为).
我测试了一些编码.在您的情况下,字符串以UTF8编码并导致:
A | A,A | A,A | A,A | A,A | A,æ| AE,č| C,E | E,E | E,E | E,E | E,U | U,U | U,U | U,直径| O,O- | O,O- | O,O- | O,O- | O,S | O,`|"|,L | L,Z | Z
除了这里对@WDS的评论之外:Spaces也应该转换为base64.无需空间处理它们.