V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
Gaussen
V2EX  ›  PHP

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

  •  
  •   Gaussen · Apr 29, 2020 · 3616 views
    This topic created in 2196 days ago, the information mentioned may be changed or developed.

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

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

    楼主把这个代码转成 php 的试试,我 java 是这样处理的.
    ben1024
        5
    ben1024  
       Apr 30, 2020
    先获取下编码,然后在进行 iconv/mb_convert_encoding 转码
    wensonsmith
        6
    wensonsmith  
       Dec 27, 2020
    可以参考 dompdf 导出部分的实现
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2502 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 15:12 · PVG 23:12 · LAX 08:12 · JFK 11:12
    ♥ Do have faith in what you're doing.