Base64EncodedString 不包括换行符
Base64EncodedString does not include NewLines
我在 Windows 10 上使用 .NET 核心 3.0 项目。我正在尝试使用以下代码将字符串编码为 base64:
var stringvalue = "Row1" + Environment.NewLine + "\n\n" + "Row2";
var encodedString = Convert.ToBase64String(Encoding.UTF8.GetBytes(stringvalue));
encodedString 结果如下:
Um93MQ0KCgpSb3cy
字符串值为:
Row1\r\n\n\nRow2
但是,如果我将相同的值传递给此站点 (https://www.base64encode.org/),我会得到另一个结果:
Um93MVxyXG5cblxuUm93Mg==
在 visual studio 中,我尝试用 Unix lineendings 重新保存文件,但没有成功:
我希望字符串按照 https://www.base64encode.org 中的编码方式进行编码。有什么想法可以完成吗?
\r\n
将在网站上进行编码,这不是换行符,这是 4 个字符。有这个换行符分隔符复选框,表示您想要 windows 样式,以转换您的真实世界输入值:
Row1
Row2.
我猜你的\r\n\n\n只是一个错误,网站准备将其转换为\r\n\r\n而已。
从屏幕截图中,我可以看到您输入的字符串与您在 C# 代码中使用的字符串不同。您在 https://www.base64encode.org 中使用的字符串表示为 C# 字符串文字,如下所示:
"Row1\r\n\n\nRow2"
// or
@"Row1\r\n\n\nRow2"
所以回答你的问题:
I want the string to be encoded as how it´s done in https://www.base64encode.org. Any ideas how to get this done?
你应该做的:
var encodedString = Convert.ToBase64String(Encoding.UTF8.GetBytes("Row1\r\n\n\nRow2"));
但这可能不是您真正想要的。您对 C# 代码的第一次尝试更可能是需要的,因为 that 实际上是一个回车 return 字符,后跟 3 个换行符。您在 https://www.base64encode.org 中输入的字符串只是反斜杠字符后跟字母 r(或 n)。
你不能真正使 https://www.base64encode.org 上的输出与 C# 输出相匹配,因为你只能在那里选择一种行分隔符。您只能编码 Row1\r\n\r\n\r\nRow2
或 Row\n\n\nRow2
。不过,您可以通过使用 https://www.base64decode.org.
解码输出来检查 C# 结果是否正确
我在 Windows 10 上使用 .NET 核心 3.0 项目。我正在尝试使用以下代码将字符串编码为 base64:
var stringvalue = "Row1" + Environment.NewLine + "\n\n" + "Row2";
var encodedString = Convert.ToBase64String(Encoding.UTF8.GetBytes(stringvalue));
encodedString 结果如下:
Um93MQ0KCgpSb3cy
字符串值为:
Row1\r\n\n\nRow2
但是,如果我将相同的值传递给此站点 (https://www.base64encode.org/),我会得到另一个结果:
Um93MVxyXG5cblxuUm93Mg==
在 visual studio 中,我尝试用 Unix lineendings 重新保存文件,但没有成功:
我希望字符串按照 https://www.base64encode.org 中的编码方式进行编码。有什么想法可以完成吗?
\r\n
将在网站上进行编码,这不是换行符,这是 4 个字符。有这个换行符分隔符复选框,表示您想要 windows 样式,以转换您的真实世界输入值:
Row1
Row2.
我猜你的\r\n\n\n只是一个错误,网站准备将其转换为\r\n\r\n而已。
从屏幕截图中,我可以看到您输入的字符串与您在 C# 代码中使用的字符串不同。您在 https://www.base64encode.org 中使用的字符串表示为 C# 字符串文字,如下所示:
"Row1\r\n\n\nRow2"
// or
@"Row1\r\n\n\nRow2"
所以回答你的问题:
I want the string to be encoded as how it´s done in https://www.base64encode.org. Any ideas how to get this done?
你应该做的:
var encodedString = Convert.ToBase64String(Encoding.UTF8.GetBytes("Row1\r\n\n\nRow2"));
但这可能不是您真正想要的。您对 C# 代码的第一次尝试更可能是需要的,因为 that 实际上是一个回车 return 字符,后跟 3 个换行符。您在 https://www.base64encode.org 中输入的字符串只是反斜杠字符后跟字母 r(或 n)。
你不能真正使 https://www.base64encode.org 上的输出与 C# 输出相匹配,因为你只能在那里选择一种行分隔符。您只能编码 Row1\r\n\r\n\r\nRow2
或 Row\n\n\nRow2
。不过,您可以通过使用 https://www.base64decode.org.