c# - 我应该如何进行编码以不使用 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);
}
解决方案
感谢您的评论。我仍然无法让它工作并决定另一条路线。我只是强制用户在命名文件时输入 ASCII 字符。
推荐阅读
- python - 海龟动画随机加速/减速
- firebase - 使用 Firebase 在 TextField 中保留换行符
- android - 除了检查 sdk 路径和卸载 avast 之外,如何解决“无法定位 adb 问题”
- javascript - 在 Node.js 中调用我的一个函数时,程序首先调用 emitHookFactory 并陷入无限循环
- java - 使用 Spring Boot 从 Kafka 队列消费时获取序列化异常
- python - 将 Hessian 定义为零
- javascript - 如何通过列表向下键或向上键以触发对事件侦听器内项目的关注?
- c++ - malloc - 运行时内存指针类型分配
- c - 为什么这个while循环没有中断?
- javascript - 如何使用 babel cli 构建整个项目结构