【发布时间】:2019-03-05 16:35:16
【问题描述】:
所以我遇到了以下问题:我正在使用 UTF-8 将 C# 中的文件内容编码为 base64,然后对其进行 URL 编码并将 GET 请求发送到我的 php,然后我在那里对其进行 url 解码,然后进行 base64 解码它。无论如何,结果都不是我用 C# 编码的文件的 1:1。我已经尝试了 C# 中的所有编码,但它们都不起作用。我应该在这里做点别的吗?我还想提一下,我正在将文件回显到八位字节流中,也许 echo 不能“回显”UTF-8 字符?
这是我在 C# 中的 Base64 编码:
public static string Base64Encode(string plainText)
{
var plainTextBytes = Encoding.UTF8.GetBytes(plainText);
string base64 = System.Convert.ToBase64String(plainTextBytes);
return WebUtility.UrlEncode(base64);
}
这是我在 PHP 中的解码方法:
base64_decode(urldecode($_GET["parameter"]));
这是我下载它的方式:
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="<filename>"');
echo(base64_decode(urldecode($_GET["parameter"])));
谢谢。
【问题讨论】:
-
没有代码,没有帮助。
-
添加了代码。
-
是的,我刚刚解决了这个问题 - 仍然没有运气。
-
你有一个简短的失败案例吗?
-
谢谢,它工作正常,如果你留下答案,我会接受它作为解决方案。
标签: c# php encoding base64 urlencode