Mac 浏览器下载的文件名总是「乱码」

这篇具有很好参考价值的文章主要介绍了Mac 浏览器下载的文件名总是「乱码」。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

如果可以实现记得点赞分享,谢谢老铁~

本文所说的方法是在出现文件名乱码情况下,如何恢复文件名的正确中文名称,并非一劳永逸地避免乱码的出现。这是由于下载文件名称乱码的出现,往往是系统、浏览器、网站三方面因素共同影响导致的,错综复杂。想要避免乱码的出现,只能根据具体的情况,对个人的系统或浏览器做出针对特定网站的调整配置。

PS: 如果你是一个开发者,你完全可以让后台人员处理下载文件名称包括内容的乱码问题。

因为本人用的是MAC,所以只诠释MAC系统。

macOS 系统

macOS系统自带强大的自动化支持,如 Automator 和 AppleScript。这里,我使用 Automator 编写了一个文件服务,使用方法:

1.右键单击需要处理的文件,进入创建服务

如下图所示:
Mac 浏览器下载的文件名总是「乱码」,工具类,Mac,文件名乱码,自定义服务

2.这个服务不需要网络,支持批量处理多个文件或文件夹。只有「运行 Shell 脚本」的操作,其中的 Shell 代码为:

PS: 这里要优先下载好 python 分两个版本,根据自身需求进行选择
Python版本

# 调用 Python 内置模块进行解码
alias urldecode='python -c "import sys, urllib as ul; print ul.unquote_plus(sys.argv[1])"'

# 遍历选择的文件列表,进行重命名
for f in "$@"
do
    newName=$(urldecode "$f")
    mv "$f" "$newName"
done

Python 3.0+ 版本

import sys
import urllib.parse
import os
import shutil

def urldecode(url):
    return urllib.parse.unquote_plus(url)

for f in sys.argv[1:]:
    newName = urldecode(f)
    shutil.move(f, newName)

将上述对应的脚本复制粘贴到下图所示当中:

Mac 浏览器下载的文件名总是「乱码」,工具类,Mac,文件名乱码,自定义服务

3.最后保存,命名服务名称为 UrlDecode

再次右键打开你需要解析的文件,如图所示:
找到你创建好的服务,如果找不到请重启电脑。

Mac 浏览器下载的文件名总是「乱码」,工具类,Mac,文件名乱码,自定义服务

Mac 浏览器下载的文件名总是「乱码」,工具类,Mac,文件名乱码,自定义服务
到这里你已经解决了大部分文件名乱码的情况,哈哈哈哈,老铁点个赞收藏。

2. 自å 类型乱码

还有其他的情况,macOS 10.13.4 中文系统 Safari 与 Chrome 浏览器下载文件名均正常。英文系统中,两种浏览器下载文件名均为乱码。

1.按照上面的步骤创建一个新的服务名称为 å 修复文件名乱码

一样分两个Python版本
Pyhton:

for f in "$@"
do
    fileName=$(basename ${f})
    filePath=$(dirname ${f})

    # 两种乱码类型 GBKUTF-8
    { fileNewName=$(echo $fileName | iconv -f UTF-8-Mac -t latin1 | iconv -f gbk)
    } || { fileNewName=$(echo $fileName | iconv -f UTF-8-Mac -t latin1)
    }

    # 文件名正常或乱码类型不属上述两种时,新文件名为空,则跳过
    if [ -n "$fileNewName" ]; then
        # 避免文件重复:如果已存在修复后的文件名,则在新文件名后加上随机字符串。
        if [ -e ${filePath}/$fileNewName ]; then
            mv "$f" "${filePath}/${fileNewName}-${RANDOM}"
        else
            mv "$f" "${filePath}/${fileNewName}"
        fi
    fi
done

Python 3.0+ 版本

import os
import shutil
import random
import sys

for f in sys.argv[1:]:
    fileName = os.path.basename(f)
    filePath = os.path.dirname(f)

    # 两种乱码类型 GBKUTF-8
    fileNewName = fileName.encode('latin1').decode('gbk') if fileName.encode('utf-8').decode('utf-8', 'ignore') != fileName else fileName.encode('utf-8').decode('utf-8', 'ignore')

    # 文件名正常或乱码类型不属于上述两种时,新文件名为空,则跳过
    if fileNewName:
        # 避免文件重复:如果已存在修复后的文件名,则在新文件名后加上随机字符串。
        if os.path.exists(os.path.join(filePath, fileNewName)):
            newFileName = f"{fileNewName}-{random.randint(0, 99999)}"
        else:
            newFileName = fileNewName

        shutil.move(f, os.path.join(filePath, newFileName))
2.记得保存文件服务就可以了,完毕。

Mac 浏览器下载的文件名总是「乱码」,工具类,Mac,文件名乱码,自定义服务

3.结语

可以看到上述代码是在解决两种乱码情况,其中 GBK 乱码是我们常遇到的,UTF-8 类型较为少见,顺手加上。
乱码的出现总是让人烦心的。希望本文介绍的方法能够帮助你解决遇到的问题。文章来源地址https://www.toymoban.com/news/detail-756758.html

收工!谢谢老铁们的点赞收藏~

到了这里,关于Mac 浏览器下载的文件名总是「乱码」的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 解决文件下载中文文件名乱码的最佳实践

    如果下载的文件名包含中文,有时浏览器可能无法正确显示文件名,而会显示乱码或者一串数字和字母。这个问题可以通过设置 Content-Disposition 响应头的 filename 参数来解决,该参数可以指定要下载的文件名,并且支持URL编码。 下面是一个示例代码,演示了如何在Java Web中设置

    2024年02月08日
    浏览(62)
  • mac上 如何批量在文件名中插入文字

        mac上 如何批量在文件名中插入文字?在使用Mac电脑的时候,我们经常需要对大量文件的名称进行修改,例如需要在大量文件的名称中插入一些相同的文字或者字符的时候,你会用什么方法来完成这项工作呢?相信很多人就面对过类似的问题吧,不少小伙伴会一个一个的对

    2024年02月16日
    浏览(47)
  • excel下载后文件名称不对

    正确写法 错误写法 下面这种写法,下载的 excel 名称会有问题

    2024年02月11日
    浏览(52)
  • 微信H5下载文件、微信浏览器无法下载文件解决方案

    手机端的微信访问网页的时候,是禁止直接下载文件的 但是IOS端可以预览.txt/.doc/.docx/.xls/xlsx/.pdf等格式的文件,Android端在下载这些格式的文件时,可以唤起 ‘即将离开微信,在浏览器打开’ 提示 所以,根据手机微信的这些限制,考虑在下载文件时,使Android微信在下载任何

    2024年02月16日
    浏览(90)
  • mac上 如何批量在文件名后加相同的文字?

        mac上如何批量在文件名后加相同的文字?不管你是使用windows电脑还是使用mac电脑,很多小伙伴都会在电脑上进行文件批量重命名的操作,不过这项操作对于使用windows系统电脑的小伙伴来说会简单一些,因为在网上可以搜索到很多这样的教程,不管你要如何批量修改文件

    2024年02月13日
    浏览(55)
  • google浏览器下载文件提示无法安全地下载怎么解决?

    在使用google浏览器下载文件的时候,弹出了“无法安全下载”的提示,搞了文件都下载不下来,网上查了一下,是因为chrome认为使用非https链接下载文件是不安全的,在新版本中阻止了用户下载。 目录 1、打开google浏览器的设置

    2024年04月24日
    浏览(46)
  • 谷歌浏览器下载文件提示无法安全地下载怎么解决?

    程序代码园发文地址: 谷歌浏览器下载文件提示无法安全地下载怎么解决?-程序代码园 小说,Java,HTML,Java小工具,程序代码园,http://www.byqws.com/ ,谷歌浏览器下载文件提示无法安全地下载怎么解决? http://www.byqws.com/blog/1067.html        今天有同事说在谷歌浏览器中下载文件,弹出

    2024年02月07日
    浏览(70)
  • python + selenium 自动下载浏览器驱动文件

    python + selenium 自动下载浏览器驱动文件

    2024年02月02日
    浏览(55)
  • windows.open 在vue前端实现文件下载(自定义下载文件名)

    1. 将要下载的文件放在前端项目的 assets 文件夹内  我要下载的文件为  src/assrts/xxx/xxx模板.csv  2. 在页面创建下载按钮    3. 导入该文件 4. 在build文件夹下的webpack.base.conf.js 文件中,添加csv(或者其他)解析类型 5. 编写下载方法 参考自:vue 实现本地excel文件下载功能_璐哈

    2024年02月05日
    浏览(105)
  • Java文件下载中文文件名乱码的解决方案

      大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作

    2024年02月13日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包