-
Notifications
You must be signed in to change notification settings - Fork 345
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
包含中文的文件名上传群文件时出错 #698
Comments
你怎么传的,要不打开debug模式看看参数 |
我觉得这不太像汉字或日文 |
这个不需要特地看debug模式,直接看错误内容就知道了
查看header可以看到,filename=部分的值为 filename="=?utf-8?B?5paw5bu65paH5pys5paH5qGjLnR4dA==?=" 这样的格式,这也与MAH的报错一致。
显然,C#自身的MultipartFormDataContent()遵守了RFC 7578的章节4.2,对Non-ASCII字符串进行了转义,使文件名变为了类似于 如果手搓轮子,自己手动构造Header的话,则MAH可以正常上传文件(中文文件名)
这样构造出来的Header内容中,filename=“新建文本文档.txt“,MAH可以正常接收并上传文件。 |
我查看了源码和各种客户端实现,大多数客户端都在 根据RFC的规定, 另外通过源码调试发现,mah 使用的 ktor 引擎只支持从 |
回复中既然提到了 RFC7578, 它里面的描述是这样的
如多数客户端一样,可以采用 UTF-8 编码直接发送。另外 从结果上看,ktor 是满足 RFC7578 的。但是不满足 RFC6266 4.3 中提到的 |
原来如此,我看到non-ASCII需要转码这里想当然了,没留意到标准的filename应该用url编码,以为 |
上传纯数字与英文的文件名时候可以正常上传,所以其他的配置应该是没问题的,就不特地去贴日志和配置了。
但是只要换成包含汉字或日文等字符的文件名,上传时就会报错。
本地的文件因为一些原因不在上传前改名,导致文件完全无法成功上传。
Mirai窗口中的提示为:
但是手机电脑都是能正常上传中文文件名的群文件的,想问下这是MAH的限制,只允许上传英文文件名吗?多谢!
The text was updated successfully, but these errors were encountered: