当前位置: 首页 > news >正文

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 类型较为少见,顺手加上。
乱码的出现总是让人烦心的。希望本文介绍的方法能够帮助你解决遇到的问题。

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

相关文章:

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

如果可以实现记得点赞分享,谢谢老铁~ 本文所说的方法是在出现文件名乱码情况下,如何恢复文件名的正确中文名称,并非一劳永逸地避免乱码的出现。这是由于下载文件名称乱码的出现,往往是系统、浏览器、网站三方面因素共…...

Redis Reactor事件驱动模型源码

前置学习:Redis server启动源码-CSDN博客 1、Redis服务器启动的时候就会就一直在轮询。 // 运行事件处理器,一直到服务器关闭为止 aeSetBeforeSleepProc(server.el,beforeSleep); aeMain(server.el);// 服务器关闭,停止事件循环 aeDeleteEven…...

cv2.error: OpenCV(4.7.0)

运行hsv脚本报错: cv2.error: OpenCV(4.7.0) D:\a\opencv-python\opencv-python\opencv\modules\imgproc\src\color.cpp:182: error: (-215:Assertion failed) !_src.empty() in function cv::cvtColor 解决方案: 这个错误信息是在使用OpenCV的cvtColor函…...

10.vue3项目(十):spu管理页面的sku的新增和修改

目录 一、sku静态页面的搭建 1.思路分析 2.代码实现 3.效果展示...

Java LeetCode篇-深入了解二叉树经典解法(三种方式实现:获取二叉树的最大深度)

🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 对称二叉树 1.1 判断对称二叉树实现思路 1.2 代码实现:判断对称二叉树 2.0 二叉树的最大深度 2.1 使用递归实现获取二叉树的最大深度思路 2.2 代码实…...

Image Segmentation Using Deep Learning: A Survey

论文标题:Image Segmentation Using Deep Learning:A Survey作者:发表日期:阅读日期 :研究背景:scene understanding,medical image analysis, robotic perception, video surveillance, augmented reality, and image…...

可视化开源编辑器Swagger Editor本地部署并实现远程访问管理编辑文档

最近,我发现了一个超级强大的人工智能学习网站。它以通俗易懂的方式呈现复杂的概念,而且内容风趣幽默。我觉得它对大家可能会有所帮助,所以我在此分享。点击这里跳转到网站。 文章目录 Swagger Editor本地接口文档公网远程访问1. 部署Swagge…...

Java TCP协议实现一对一聊天与UDP协议实现群聊案例

JavaTCP协议实现一对一聊天与UDP协议实现群聊案例 1.TCP协议实现一对一聊天 1.1服务端运行结果 1.2客服端运行结果 1.3代码汇总 服务端 package twentyone;import java.io.IOException; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.…...

【从0配置JAVA项目相关环境1】jdk + VSCode运行java + mysql + Navicat + 数据库本地化 + 启动java项目

从0配置JAVA项目相关环境 写在最前面一、安装Java的jdk环境1. 下载jdk2. 配置jdk3. 配置环境变量 二、在vscode中配置java运行环境1. 下载VSCode2. 下载并运行「Java Extension Pack」 三、安装mysql1.官网下载MySQL2.开始安装如果没有跳过安装成功 3.配置MySQL Server4.环境变…...

人工智能_机器学习053_支持向量机SVM目标函数推导_SVM条件_公式推导过程---人工智能工作笔记0093

然后我们再来看一下支持向量机SVM的公式推导情况 来看一下支持向量机是如何把现实问题转换成数学问题的. 首先我们来看这里的方程比如说,中间的黑线我们叫做l2 那么上边界线我们叫l1 下边界线叫做l3 如果我们假设l2的方程是上面这个方程WT.x+b = 0 那么这里 我们只要确定w和…...

二叉树的前、中和后序遍历的递归与迭代实现

1. 前序遍历 1.1 递归 /*** Definition for a binary tree node.* function TreeNode(val, left, right) {* this.val (valundefined ? 0 : val)* this.left (leftundefined ? null : left)* this.right (rightundefined ? null : right)* }*/ /*** param …...

人体姿态估计算法

人体姿态估计算法 1 什么是人体姿态估计2 基于经典传统和基于深度学习的方法2.1 基于经典传统的人体姿态估计算法2.2 基于深度学习的人体姿态估计算法OpenPoseAlphaPose (RMPE) 3 算法应用4 Paper 人体姿态估计在现实中的应用场景很丰富,如下 动作捕捉:三…...

docker部署jupyter

文章目录 1.搜索镜像2.拉取镜像3.创建挂载4.运行容器4.查看容器运行运行状态5.token查看6.访问jupyter 1.搜索镜像 docker search jupyter: 命令用于在 Docker Hub 上搜索名为 “jupyter” 的镜像。搜索结果显示了一个名为 “jupyter/datascience-notebook” 的镜像&#xff0…...

音视频的功耗优化

前言 在应用中,录制与音视频模块往往是高耗能的模块,设备容易发热,影响体验。 什么是功耗优化 手机有多个耗电模块, SOC(CPU,GPU,DDR),Display,Audio,Video&#xff0…...

Python实现FA萤火虫优化算法优化XGBoost回归模型(XGBRegressor算法)项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 萤火虫算法(Fire-fly algorithm,FA)由剑桥大学Yang于2009年提出 , …...

SCAUoj综合性实验

Last One ! 文章目录 1109 综合实验:文件操作与字符处理总结 1109 综合实验:文件操作与字符处理 时间限制:4000MS 代码长度限制:10KB 提交次数:6265 通过次数:1646 题型: 填空题 语言: GCC Description 在当前目录中存在文件名为"case1.in"&…...

智加科技获全国首张重卡无人驾驶开放道路测试牌照

2023年12月1日,智加科技获得苏州市智能网联汽车无人化测试牌照。该牌照也是江苏省及国内首张无人重卡开放高速公路全路段全场景全息路网(S17苏台高速)道路测试牌照。 该重卡无人驾驶开放道路测试牌照,经由苏州市智能网联汽车联席小…...

LLM大语言模型(一):ChatGLM3-6B本地部署

目录 前言 本机环境 ChatGLM3代码库下载 模型文件下载 修改为从本地模型文件启动 启动模型网页版对话demo 超参数设置 GPU资源使用情况 (网页对话非常流畅) 前言 LLM大语言模型工程化,在本地搭建一套开源的LLM,方便后续的…...

chatgpt prompt提示词

chatgpt的接口是一个标准的http请求,请求的url为 POST https://api.openai.com/v1/chat/completions 官方的接口文档地址为:https://platform.openai.com/docs/api-reference/chat/create Example request curl https://api.openai.com/v1/chat/comp…...

【PyTorch】数据集

文章目录 1. 创建数据集1.1. 直接继承Dataset类1.2. 使用TensorDataset类 2. 数据集的划分3. 加载数据集4. 将数据转移到GPU 1. 创建数据集 主要是将数据集读入内存,并用Dataset类封装。 1.1. 直接继承Dataset类 必须要重写__getitem__方法,用于根据索…...

oops-framework框架 之 本地存储(五)

引擎: CocosCreator 3.8.0 环境: Mac Gitee: oops-game-kit 注: 作者dgflash的oops-framework框架QQ群: 628575875 简介 在CocosCreator中,本地存储主要使用sys.localStorage 接口,通过 key-value的格式进…...

编程常见的问题

在现代社会中,编程已经成为一项非常重要的技能。随着科技的不断发展和普及,计算机已经渗透到我们生活的方方面面,从个人电脑、手机到智能家居、自动驾驶等。编程作为计算机科学的基础,为我们提供了解决问题和创造新事物的工具和方…...

针对Arrays.asList的坑,可以有哪些处理措施

上文讲述:Error querying database. Cause: java.lang.reflect.InaccessibleObjectException: 那么如果真的只习惯用Arrays.asList,那也是有对应的解决办法的。 一、解决办法大方向 不管做什么事情,都是先判定一个大方向,不管是…...

SE考研真题总结(一)

本帖开始分享考研真题中设计【软件工程】的部分,预计会出5期左右,敬请期待~ 一.单选题 1.程序编写不是软件质量保障过程~ 静态代码扫描是今年来多数被人提及的软件应用安全解决方案之一,指程序员在编写好代码后无需进行编译,直接…...

Xshell远程登录AWS EC2 Linux实例

文章目录 小结问题解决参考 小结 Xshell远程登录AWS EC2 Linux实例碰到些问题,进行解决并记录。 问题 在AWS中创建 EC2 Linux实例,生成的非对称密钥对,使用Xshell远程登录碰到一些问题。 解决 首先在Putty中可以使用的ppk密钥文件在Xshe…...

Elasticsearch:对时间序列数据流进行降采样(downsampling)

降采样提供了一种通过以降低的粒度存储时间序列数据来减少时间序列数据占用的方法。 指标(metrics)解决方案收集大量随时间增长的时间序列数据。 随着数据老化,它与系统当前状态的相关性越来越小。 降采样过程将固定时间间隔内的文档汇总为单…...

python自动化测试框架:unittest测试用例编写及执行

本文将介绍 unittest 自动化测试用例编写及执行的相关内容,包括测试用例编写、测试用例执行、测试报告等内容。 官方文档: https://docs.python.org/zh-cn/3/library/unittest.mock.html 1. 测试用例编写 在 unittest 中,一个测试用例通常…...

ctfhub技能树_web_web前置技能_HTTP

目录 一、HTTP协议 1.1、请求方式 1.2、302跳转 1.3、Cookie 1.4、基础认证 1.5、响应包源代码 一、HTTP协议 1.1、请求方式 注:HTTP协议中定义了八种请求方法。这八种都有:1、OPTIONS :返回服务器针对特定资源所支持的HTTP请求方法…...

mysql8报sql_mode=only_full_group_by(存储过程一直报)

1:修改数据库配置(重启失效) select global.sql_mode;会打印如下信息 ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION里面包含 ONLY_FULL_GROUP_BY,那么就重新设置,在数据库中输入以下代码,去掉ONLY_FULL_GROU…...

Vue2中v-html引发的安全问题

前言:v-html指令 1.作用:向指定节点中渲染包含html结构的内容。 2.与插值语法的区别: (1).v-html会替换掉节点中所有的内容,{{xx}}则不会。 (2).v-html可以识别html结构。 3.严重注意:v-html有安全性问题&#xff0…...

有名的网站开发工具/网站优化公司哪个好

QML Modules 在Qt 6.2中,首次出现了一个全面的构建系统API,允许您将QML模块指定为一个完整的、封装的单元。这是一个显著的改进,但由于QML模块的概念在Qt 5中还很不成熟,甚至经验丰富的QML开发人员现在可能会问“QML模块到底是什…...

合肥网络公司百家号/seo自学网官方

题库来源:安全生产模拟考试一点通公众号小程序 安全员-C证(山东省)考试是安全生产模拟考试一点通总题库中随机出的一套安全员-C证(山东省)考试总结,在公众号安全生产模拟考试一点通上点击安全员-C证&#…...

嘉兴 网站制作/如何建立自己的网站

去年做了一个数据仓库的项目,其中涉及到了CUBE数据级权限的控制。在网上找这方面的资料,找到一个[BI] 通用数据级权限控制解决方案的实现(二):Cube中的角色设置与数据级权限控制。根据这个大牛的思路,做完之后发现有几个问题&…...

做网站开发需要什么/百度收录的网站多久更新一次

实例 规定属于其父元素的第二个子元素的每个 p 的背景色: p:nth-child(2) { background:#ff0000; } 浏览器支持 所有主流浏览器均支持 :nth-child() 选择器,除了 IE8 及更早的版本。 定义和用法 :nth-child(n) 选择器匹配属于其父元素的第 N 个子元素&am…...

微信分享按钮wordpress高级版/百度推广公司

B站精选fiddler抓包教程,学完别去做坏事!_哔哩哔哩_bilibiliB站精选fiddler抓包教程,学完别去做坏事!共计43条视频,包括:Fiddler实战1-fiddler的下载与安装、Fiddler实战2-fiddler抓包、Fiddler实战3-移动端…...

宜昌城市建设学校网站/聊城网站seo

让云触手可及:微软虚拟化远程直播 2011年IT届的明星,非虚拟化莫属,特别是刚刚结束的微软2011TechED大会上,虚拟化更是受到了热捧,越来越多的人追随虚拟化的脚步,虚拟化如此火热,如果你还不知道虚…...