gpt4 book ai didi

utf-8 - 内容处理特殊字符

转载 作者:行者123 更新时间:2023-12-02 05:12:52 24 4
gpt4 key购买 nike

我在尝试使用西类牙波浪线提供文件时遇到了与 Content-Disposition 编码相关的问题。

文件名为“qué hacés ahora.docx”

到目前为止,ASP.NET MVC 提供文件的方式添加了这个头文件,它只在 Firefox 中工作正常:

Content-Disposition: attachment; filename*=UTF-8''qu%C3%A9%20hac%C3%A9s%20ahora.docx

我在 Controller 中使用:
return File(path, "application/octet-stream", originalNameWithAccents);

这在 IE 或 Chrome 中不起作用。

因此,我使用 GMail 将文件作为附件通过电子邮件发送给自己。使用 firebug 查看发生了什么,谷歌发送回的 Content-Disposition 是:
Content-Disposition: attachment; filename="=?UTF-8?B?cXXDqSBoYWPDqXMgYWhvcmEuZG9jeA==?="

请注意名称是如何进行 base64 编码的 (cXXDqSBoYWPDqXMgYWhvcmEuZG9jeA==)。

所以,到目前为止我有两个问题:
  • 哪里有这方面的规范?
  • 是否有任何已知的方法可以使用 ASP.NET 提供这种类型的文件名?
  • 最佳答案

    我对文件名有同样的问题。文件名如

     filename="=?utf-8?B?VGVzdG93eVBMSUvFgsSFw7PEh2FwaS5kb2N4?="

    以 base64 (VGVzdG93eVBMSUvFgsSFw7PEh2FwaS5kb2N4) 字符集 utf-8 和原始文件名编码:
     TestowyPLIKłąóćapi.docx

    这是获取文件名的方法:

    string cdString = "attachment; filename=\"=?UTF-8?B?cXXDqSBoYWPDqXMgYWhvcmEuZG9jeA==?=\"";
    string filename;

    System.Net.Http.Headers.ContentDispositionHeaderValue val;
    if (System.Net.Http.Headers.ContentDispositionHeaderValue.TryParse(cdString, out val))
    fileName = val.FileName.Replace("\"", "");
    else
    throw new Exception("...");


    fileName = "qué hacés ahora.docx"

    关于utf-8 - 内容处理特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3869818/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com