批量修改文件编码

 

1 说明    1

1 简介    1

2 下载    1

3 使用    1

4 代码页选择    2

5 设置ANSI代码页    3

 

 

1 说明

1 简介

Windows上开发程序,各种编码可谓百花齐放:VC++6.0只能使用ANSI编码;Qteclipse最好使用带BOMUTF-8编码;Android Studio最好使用不带BOMUTF-8编码……

还有换行符,MacLinuxWindows三者完全不同。从网上下载的开源代码,很有可能就是Linux的换行符\n,在Windows的记事本里显示时只有一行。

一个个的去修改这些文件的编码、换行符,是很繁琐的一件事情。为此,笔者编写了程序vcHelper,可以批量的转换编码、换行符。

2 下载

首先进入百度网盘:http://pan.baidu.com/s/1gd7XDkf

然后依次进入publicToolsvcHelper,下载最新版的压缩包文件。

3 使用

本节将演示如何将eclipse里的Java源代码文件(带BOMUTF-8编码),转换为Android Studio需要的格式(不带BOMUTF-8编码)。

进入源代码所在目录,搜索源代码文件(*.java)。然后按下Ctrl+A全选,再按下Ctrl+C复制这些文件名称到剪贴板内。如下图所示:

1

运行vcHelper,进入"编码与换行"页面。按下图进行配置。按下Ctrl+V,粘贴剪贴板内的文件,即可实现文件编码的转换。

2

上图的转换结果里,2/2的分母表示共有两个文件,分子表示有两个文件被改写。

注意:vcHelper会直接覆盖原文件,所以使用它之前请备份好Java源代码。

4 代码页选择

注意:ANSI编码与没有BOMUTF-8编码,有时会产生歧义。此时,就需要人工选择了。

如:ANSI编码(其实是GBK编码)的"联通"可以理解为UTF-8编码。这样的文本文件,使用记事本、UltraEdit打开时,将使用UTF-8编码,结果将显示乱码。如下图所示。

3

使用vcHelper转换这类文件的编码时,会要求用户选择代码页。如下所示:

4

上图表明:"C:\Users\Administrator\Desktop\联通.txt"这个文件,用ANSI编码解释就是"联通",用UTF-8编码解释就是"��ͨ"。单击"选择ANSI"按钮,就以ANSI编码为准;单击"UTF-8"按钮,就以UTF-8编码为准。

5 设置ANSI代码页

在中文Windows上,默认的ANSI代码页是GBK。一般是不用修改这个选项的。不过,有时需要修改。

如:将GB18030编码转换为GBK编码,请按下图所示进行设置:

5

如:将GBK编码转换为Big5编码,请按下图所示进行设置:

6

你可以使用以下Python代码来批量修改文件编码: ```python import os from chardet import detect def convert_encoding(path): with open(path, 'rb') as fp: content = fp.read() encoding = detect(content)['encoding'] content = content.decode(encoding).encode('utf8') with open(path, 'wb') as fp: fp.write(content) def batch_convert_encoding(directory): for root, dirs, files in os.walk(directory): for file in files: if file.endswith(('.c', '.cpp', '.h', '.hpp')): path = os.path.join(root, file) convert_encoding(path) # 使用示例 batch_convert_encoding("目标文件夹目录") ``` 这段代码会递归地遍历指定目录下的所有文件,并将后缀名为.c, .cpp, .h, .hpp的文件都转换为UTF-8编码。首先,它通过chardet库检测文件的原始编码。然后,将文件内容按照检测到的编码解码,并重新以UTF-8编码写入文件。这样就完成了批量修改文件编码的操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [python 批量修改文件编码](https://blog.csdn.net/Eternal_Whispers/article/details/120220132)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [python实现批量转换文件编码encoding](https://blog.csdn.net/awisc/article/details/120901910)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值