V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Gaussen
V2EX  ›  PHP

请问一下,苹果 Safari 导出 csv/xlsx 文件中文名是乱码要怎么解决?

  •  
  •   Gaussen · 2020-04-29 17:01:44 +08:00 · 2914 次点击
    这是一个创建于 1698 天前的主题,其中的信息可能已经有所发展或是发生改变。

    开发语言是 PHP 。 目前是小程序上获取下载链接,然后用户在手机浏览器上下载。 安卓目前没问题,转成了 GB18030 编码。 但是苹果不行,中文名乱码,尝试编码为 iso-8859-1 也还是不行。 找了半天也没看到合适的解决方案,只能求助大佬们了。

    6 条回复    2020-12-27 09:46:20 +08:00
    SimonOne
        1
    SimonOne  
       2020-04-29 17:07:53 +08:00
    excel 打开的? mac excel 不支持 utf-8
    Gaussen
        2
    Gaussen  
    OP
       2020-04-29 17:09:30 +08:00
    @SimonOne 是通过 iphone 打开的,不是 mac 。手机端的。
    Gaussen
        3
    Gaussen  
    OP
       2020-04-29 17:10:25 +08:00
    @SimonOne iphone 的 safari,下载下来的文件名是乱码
    BBCCBB
        4
    BBCCBB  
       2020-04-29 17:17:00 +08:00
    headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
    headers.setContentDispositionFormData(
    "attachment; filename*=UTF-8''", URLEncoder.encode(filename, "utf-8"))

    楼主把这个代码转成 php 的试试,我 java 是这样处理的.
    ben1024
        5
    ben1024  
       2020-04-30 11:19:17 +08:00
    先获取下编码,然后在进行 iconv/mb_convert_encoding 转码
    wensonsmith
        6
    wensonsmith  
       2020-12-27 09:46:20 +08:00
    可以参考 dompdf 导出部分的实现
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1050 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 23:20 · PVG 07:20 · LAX 15:20 · JFK 18:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.