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

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

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

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

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

macOS 系统

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

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

如下图所示:
在这里插入图片描述

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 "$@"
donewName=$(urldecode "$f")mv "$f" "$newName"
done

Python 3.0+ 版本

import sys
import urllib.parse
import os
import shutildef urldecode(url):return urllib.parse.unquote_plus(url)for f in sys.argv[1:]:newName = urldecode(f)shutil.move(f, newName)

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

在这里插入图片描述

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

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

在这里插入图片描述

在这里插入图片描述
到这里你已经解决了大部分文件名乱码的情况,哈哈哈哈,老铁点个赞收藏。

2. 自å 类型乱码

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

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

一样分两个Python版本
Pyhton:

for f in "$@"
dofileName=$(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 ]; thenmv "$f" "${filePath}/${fileNewName}-${RANDOM}"elsemv "$f" "${filePath}/${fileNewName}"fifi
done

Python 3.0+ 版本

import os
import shutil
import random
import sysfor f in sys.argv[1:]:fileName = os.path.basename(f)filePath = os.path.dirname(f)# 两种乱码类型 GBKUTF-8fileNewName = 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 = fileNewNameshutil.move(f, os.path.join(filePath, newFileName))
2.记得保存文件服务就可以了,完毕。

在这里插入图片描述

3.结语

可以看到上述代码是在解决两种乱码情况,其中 GBK 乱码是我们常遇到的,UTF-8 类型较为少见,顺手加上。
乱码的出现总是让人烦心的。希望本文介绍的方法能够帮助你解决遇到的问题。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/205780.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis 通用命令和数据类型

get和set get和set两个命令是最基本也是最常用的命令,主要用于操作字符串类型的数据。 1.SET 命令: SET 命令用于设置指定 key 的值。如果 key 已经持有其他值,SET 就覆写旧值,无视类型。具体的命令格式如下: SET key value例如…

CentOS 7 部署 Nacos (单机版)

CentOS 7 部署 Nacos (单机版) 1. 下载 Nacos 安装包 历史版本:https://github.com/alibaba/nacos/releases/ 我选的是 2.1.0 版本,https://github.com/alibaba/nacos/releases/download/2.1.0/nacos-server-2.1.0.tar.gz 2. …

PostgreSQL-SQL联表查询LEFT JOIN 数据去重复

我们在使用left join联表查询时,如果table1中的一条记录对应了table2的多条记录,则会重复查出id相同的多条记录。 1、解决方法一 SELECT t1.* FROM table1 t1 LEFT JOIN table2 t2 ON t1.id t2.tid 第一种方法我们发现还是有重复数据 2、解决方法二…

深度学习毕设项目 深度学习 python opencv 动物识别与检测

文章目录 0 前言1 深度学习实现动物识别与检测2 卷积神经网络2.1卷积层2.2 池化层2.3 激活函数2.4 全连接层2.5 使用tensorflow中keras模块实现卷积神经网络 3 YOLOV53.1 网络架构图3.2 输入端3.3 基准网络3.4 Neck网络3.5 Head输出层 4 数据集准备4.1 数据标注简介4.2 数据保存…

Elasticsearch:FMA 风格的向量相似度计算

作者:Chris Hegarty 在 Lucene 9.7.0 中,我们添加了利用 SIMD 指令执行向量相似性计算的数据并行化的支持。 现在,我们通过使用融合乘加 (Fused Mulitply-Add - FMA) 进一步推动这一点。 什么是 FMA 乘法和加法是一种常见的运算,…

RNN-T Training,RNN-T模型训练详解——语音信号处理学习(三)(选修三)

参考文献: Speech Recognition (option) - RNN-T Training哔哩哔哩bilibili 2020 年 3月 新番 李宏毅 人类语言处理 独家笔记 Alignment Train - 8 - 知乎 (zhihu.com) 本次省略所有引用论文 目录 一、如何将 Alignment 概率加和 对齐方式概率如何计算 概率加和计…

OBC、DCDC自动化测试解决方案!

OBC(车载充电机)和DCDC(直流-直流变换器)是电动汽车的核心部件,DCDC和OBC的功能质量对于整车的性能和安全性至关重要。在OBC和DCDC,以及整车开发测试过程中,需要对OBC和DCDC进行功能和性能方面进行全面的测…

1990-2021年上市公司排污费和环境保护税数据

1990-2021年上市公司排污费和环境保护税数据 1、时间:1990-2021年 2、指标: 证券代码、会计期间、year、month、行业、应缴排污费/环境保护税、其中:大气污染物、其中:水污染物、其中:固体废物、其中:噪…

京东API商品详情接口,通过商品ID获取商品名称,淘宝主图,价格,颜色规格尺寸,库存,SKU数据等调用示例

要接入京东API接口以采集电商平台上的商品数据,可以按照以下步骤进行: 注册并获取API密钥:在使用API接口之前,需要注册并获取API密钥。API密钥是识别身份的唯一标识符。每个API接口都有自己的注册、认证和授权过程,因…

设计规则:模块化的力量

这是一本比较冷门的书**《设计规则:模块化的力量》**,虽然豆瓣上只有58个评价,但是确实能学到很多东西。 这本书对我非常深远。不是是投资,创业,还是其他领域,模块化思想都能帮上你。这本书告诉我们生万物…

elasticsearch操作

目录 一、mapping映射属性二、索引库的CRUD2.1 创建索引库和映射2.2 查询索引库2.3 修改索引库2.4 删除索引库2.5 总结 三、文档操作3.1 新增文档3.2 查询文档3.3 删除文档3.4 修改文档3.5 总结 四、RestClient操作索引库4.1 初始化RestClient4.2 创建索引库4.3 删除索引库4.4 …

yolov1网络结构说明

文章目录 一. 网络结构二. 网络说明1. 网络的输入2. 网络的输出(1) 5 5表示:每个网格使用两个先验框进行预测。(2) “5”表示:每个先验框包含的预测信息的数量。(3) 20表示:20个分类预测值(4) 每个网格能预测几个目标? 一. 网络结构 论文下…

【古月居《ros入门21讲》学习笔记】18_常用可视化工具的使用

目录 说明: 1. Qt工具箱 日志输出工具:rqt_console 绘制数据曲线:rqt_plot 图像渲染工具:rqt_image_view 综合工具:rqt 2. 三维可视化工具:Rviz Rviz启动 使用示例 3. 仿真平台:Gazebo…

Kotlin学习——kt入门合集博客 kt里的委派模式Delegation kt里的特性

Kotlin 是一门现代但已成熟的编程语言,旨在让开发人员更幸福快乐。 它简洁、安全、可与 Java 及其他语言互操作,并提供了多种方式在多个平台间复用代码,以实现高效编程。 https://play.kotlinlang.org/byExample/01_introduction/02_Functio…

谱方法学习笔记-下(超详细)

谱方法学习笔记📒 谱方法学习笔记-上(超详细) 声明:鉴于CSDN使用 K a T e X KaTeX KaTeX 渲染公式, KaTeX \KaTeX KATE​X 与 L a T e X LaTeX LaTeX 不同,不支持直接的交叉引用命令,如\label和\eqref。 KaTeX \KaT…

Linux学习笔记09、Shell命令之历史命令和自动补全

上一篇:Linux学习笔记08、Shell命令之常用命令缩写及全称 目录 1、历史命令: 1.1、查看所有历史命令列表: 1.2、查看指定历史命令: 1.3、清除历史命令: 2、自动补全 2.1、当字符串唯一时: 2.2、当有多个…

Python自动化测试数据驱动解决数据错误

数据驱动将测试数据和测试行为完全分离,实施数据驱动测试步骤如下: A、编写测试脚本,脚本需要支持从程序对象、文件或者数据库读入测试数据; B、将测试脚本使用的测试数据存入程序对象、文件或者数据库等外部介质中;…

C++面向对象复习笔记暨备忘录

C指针 指针作为形参 交换两个实际参数的值 #include <iostream> #include<cassert> using namespace std;int swap(int *x, int* y) {int a;a *x;*x *y;*y a;return 0; } int main() {int a 1;int b 2;swap(&a, &b);cout << a << &quo…

GraphCast:基于机器学习的全球中期天气预测模型

文章信息 文章题为”GraphCast: Learning skillful medium-range global weather forecasting”&#xff0c;该文章于2023年发表至Science&#xff0c;文章内容主要关于利用机器学习模型&#xff0c;实现高效、准确的全球中期天气预测。由于文章内容较多&#xff0c;本文仅对研…

Retrofit+OkHttp打印Request 请求地址参数

在移动端开发时&#xff0c;我们常常需要像web端一样可以方便地查看我们向服务器发送请求的报文详细日志&#xff08;如请求地址&#xff0c;请求参数&#xff0c;请求类型&#xff0c;服务器响应的耗时时间&#xff0c;请求返回的结果等等&#xff09;。 使用Retrofit时&…