首页 > 解决方案 > 我应该如何进行编码以不使用 WebClient 出现中文字符错误?

问题描述

我有以下功能可以从我们的服务器下载文件。有些客户用中文命名他们的文件,然后我在 Wc_DownloadFileCompleted 中收到以下错误:“远程服务器返回错误:(404)未找到。”。我已经尝试使用 HttpUtility.UrlEncode 对 URL 进行编码,但这会给我在 Uri 构造函数上的错误,或者如果我只是对最后一部分进行编码,我会得到相同的 404 错误。

这是给我带来问题的 URL:

http://example.com/Uploads/-463941/480630/1802+201830030210+孟万青.CNC.cloudfile

我已经仔细检查了该文件是否位于该位置并且具有相同的文件名。

private void DownloadCloudFile(string url)
{
    WebClient wc = new WebClient();
    wc.DownloadFileCompleted += Wc_DownloadFileCompleted;
    string tmpfile = Path.GetTempFileName();
    wc.DownloadFileAsync(new Uri(url), tmpfile, tmpfile);
}

标签: c#.netwebclient

解决方案


感谢您的评论。我仍然无法让它工作并决定另一条路线。我只是强制用户在命名文件时输入 ASCII 字符。


推荐阅读