vs文件编码批量转换工具

2 篇文章 0 订阅

https://blog.csdn.net/xiaozhi0999/article/details/52469979

上文提到了ue4中出现中文乱码问题,可通过修改文件编码格式解决,但当文件很多的时候,一个个修改文件编码比较费事,所以本人用python写了一个批量转换编码工具(gb2312转utf8),其他编码转换,只需要对代码稍作修改即可。

python2.7

import os

def fileGb2312ToUtf8(filename):
	with open(filename, "r") as binary_file:
		data = binary_file.read()

	with open(filename, "wb") as binary_file:
		buff = b'\xef\xbb\xbf'
		binary_file.write(buff)

	with open(filename, "ab") as binary_file:
		try:
			result = data.decode("gb2312").encode("utf-8")
			binary_file.write(result)
		except Exception as err:
			print filename
			print err


def fileExtension(filename): 
  return os.path.splitext(filename)[1] 


def isCodeFile(filename):
	extension = fileExtension(filename)
	return (cmp(extension, '.h') == 0) or (cmp(extension, '.cpp') == 0) or (cmp(extension, '.cs') == 0)


def isUtf8File(filename):
	with open(filename, "rb") as binary_file:
		binary_file.seek(0)
		data = bytearray(binary_file.read(3))
		return data[0] == 0xef and data[1] == 0xbb and data[2] == 0xbf
	return False


def dirGb2312ToUtf8(dir):
	list = []
	for path,dirs,fs in os.walk(dir):
		for f in fs:
			fullPath = os.path.join(path,f)
			list.append(fullPath)

	for i, filename in enumerate(list):
		if (isUtf8File(filename)):
			print filename + ' encode is utf8 already!'
			continue
		if (isCodeFile(filename)):
			fileGb2312ToUtf8(filename)


dirGb2312ToUtf8('F:\work\MyProject\Source\MyProject')

python3.6

import os
 
def fileGb2312ToUtf8(filename):
	with open(filename, "r") as binary_file:
		data = binary_file.read()
 
	with open(filename, "wb") as binary_file:
		buff = b'\xef\xbb\xbf'
		binary_file.write(buff)
 
	with open(filename, "ab") as binary_file:
		try:
			result = data.encode("utf-8")
			binary_file.write(result)
		except Exception as err:
			print(filename)
			print(err)
 
 
def fileExtension(filename): 
  return os.path.splitext(filename)[1] 

def cmp(a, b):
	return (a > b) - (a < b)
 
def isCodeFile(filename):
	extension = fileExtension(filename)
	return (cmp(extension, '.h') == 0) or (cmp(extension, '.cpp') == 0) or (cmp(extension, '.cs') == 0)
 
 
def isUtf8File(filename):
	with open(filename, "rb") as binary_file:
		binary_file.seek(0)
		data = bytearray(binary_file.read(3))
		return data[0] == 0xef and data[1] == 0xbb and data[2] == 0xbf
	return False
 
 
def dirGb2312ToUtf8(dir):
	list = []
	for path,dirs,fs in os.walk(dir):
		for f in fs:
			fullPath = os.path.join(path,f)
			list.append(fullPath)
 
	for i, filename in enumerate(list):
		if (isUtf8File(filename)):
			print(filename + ' encode is utf8 already!')
			continue
		if (isCodeFile(filename)):
			fileGb2312ToUtf8(filename)
 
 
dirGb2312ToUtf8('F:\work\DeathFire\Source\DeathFire')

python文件下载及使用说明:

https://download.csdn.net/download/xiaozhi0999/10495232

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
项目中有很多文件因为编码的原因导致用户使用的时候看到的是乱码,或是不兼容的情况,网上找了一圈 也没有适合咱程序员的转码的工具,所以写了一个批量转换工具 虽然已经使用在我司生产项目中,但还是建议你转换前备份一次文件 注意(使用前必看): 注意(使用前必看): 注意(使用前必看): 支持所有文本格式的文档(如 txt,js,css,java,c..),二进制或程序(如word,excel,exe文件)不要使用本转换工具,因为是JAVA程序 需要你的机器上已经安装了JDK 使用方法: 1,打开start.sh文件,windows用户把扩展名.sh修改为.bat 2,修改三个双引号("")中的参数, 第一个参数是文件夹路径, 第二个参数表示要转换成的编码 如utf-8,utf-8-bom,ansi 等编码都支持 第二个参数表示要转换文件类型,以扩展名的形式提供支持,可以提供多个文件扩展名 以空格分隔 如:我要转换E盘下 E:\work_architecture\doc目录下的所有js 和 css 文件 编码为 utf-8 那么,你要执行的命令就是 java -jar code_conversion.jar "E:\work_architecture\doc" "utf-8" ".js .css" 还是挺简单的吧~~ 支持的功能: 1,批量转换,子目录自动发现 2,文件编码自动识别,所以使用的时候不用提供原文件编码;识别不了不会转换,保证项目文件的安全 3,支持utf-8-bom编码 4,兼容Linux & Windows & Mac系统 5,不用安装,只要机器有JDK就可以使用 需要源码的请邮件jidaqiana@163.com 或 私信我
### 回答1: UTF-8文件编码转换工具是一种可以将文件从一种编码格式转换为UTF-8格式的工具。由于不同的国家和地区使用不同的字符编码系统,当我们需要在不同的平台或程序之间共享文件时,可能会遇到编码转换的问题。UTF-8是一种通用的字符编码标准,它可以表示广泛的字符集,包括大多数世界上的语言。 UTF-8文件编码转换工具可以通过简单易用的界面,将文件从其他编码格式(如GB2312、ISO-8859-1等)转换为UTF-8格式。用户只需选择要转换文件和目标编码格式,点击转换按钮即可完成转换过程。转换完成后,用户可以在所选的目标目录中找到转换后的UTF-8编码文件。 UTF-8文件编码转换工具的作用主要有两个方面。首先,它可以帮助用户解决在不同编码环境下文件编码不兼容的问题,确保文件的正确显示和处理。其次,它可以提高文件的可移植性,使其可以在不同的平台和程序中使用和共享。 需要注意的是,使用UTF-8文件编码转换工具时应谨慎检查转换结果,以确保转换过程没有引入任何错误或变化。同时,用户也应了解不同编码格式之间的差异,避免意外丢失或损坏文件中的特定字符或信息。 总之,UTF-8文件编码转换工具是一种方便实用的工具,可以帮助用户解决不同编码格式之间的兼容性问题,并提高文件的可移植性和共享性。 ### 回答2: UTF-8文件编码转换工具是一种用于将文件从一种编码形式转换成另一种编码形式的工具。UTF-8文件编码是一种用于在计算机中存储和传输Unicode字符的编码方式,它为每个字符分配了不同的字节数,从而可以表示包括中文在内的几乎所有字符。 UTF-8文件编码转换工具通常具有以下功能: 1. 编码转换:可以将一个编码格式的文件转换成UTF-8编码格式。这在需要将其他编码格式的文件转换为普遍支持的UTF-8编码格式时非常有用。 2. 解码转换:可以将UTF-8编码格式的文件转换成其他编码格式。这在需要将UTF-8编码格式的文件转换为其他特定编码格式时很有用。 3. 批量转换:可以同时处理多个文件编码转换操作,提高转换效率。 4. 提供预览和比较功能:可以预览转换前后文件的内容,并提供比较功能以确保转换的正确性。 5. 异常处理:可以处理转换过程中可能出现的异常情况,如文件格式错误或不支持的编码格式。 使用UTF-8文件编码转换工具可以轻松地在不同的编码格式之间进行转换,解决文件编码不兼容的问题,确保文件内容的正确性和一致性。这对于在多国语言环境下进行文件处理和共享非常重要,尤其是在涉及中文等非ASCII字符的情况下。 ### 回答3: UTF-8文件编码转换工具是一种能够将不同编码格式的文件转换为UTF-8编码的软件或工具。UTF-8是一种常用的多字节字符集编码,可以表示全世界几乎所有的字符。在国际化和跨平台应用中,使用UTF-8编码可以避免字符编码不一致带来的问题。 UTF-8文件编码转换工具的功能主要包括:检测文件编码、将其他编码文件转换为UTF-8编码批量转换多个文件、保存文件时指定UTF-8编码等。 使用UTF-8文件编码转换工具有以下几个步骤: 首先,我们需要确认源文件编码格式。可以使用工具提供的检测功能,通过分析文件的字节序列来推测文件编码格式。 其次,选择正确的目标编码格式为UTF-8。如果源文件编码与目标编码不一致,我们需要使用工具提供的转换功能将文件编码格式转换为UTF-8。 然后,我们可以选择批量转换多个文件,方便处理大量文件编码转换需求。 最后,保存文件时需要指定UTF-8编码,确保文件以UTF-8编码格式保存。 需要注意的是,UTF-8文件编码转换工具并不会对文件内容进行修改,只是修改文件编码格式。因此,在转换文件编码前,建议先备份原始文件,以免不可挽回地修改文件内容。 总结来说,UTF-8文件编码转换工具是一种帮助用户将其他编码格式的文件转换为UTF-8编码的实用工具,可以避免在不同平台或国际化应用中出现的字符编码不一致问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值