python解决js文件utf-8编码乱码问题

本文介绍了解决HTML文件中引入的JS文件出现乱码的方法。当JS文件采用UTF-8编码但显示乱码时,可以通过转换JS文件为UTF-8 BOM编码来解决。文章提供了使用Notepad++手动转换及Python脚本批量处理的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

html文件中引入js文件,显示乱码!

js文件为utf-8 编码(无bom)  ,此时只要将js文件转成utf-8 BOM编码就可以解决了

可以使用notepad++转码

也可以使用下面的python代码批量转码

# -*- coding:utf-8 -*-

 
import os,sys
import chardet
 
def convert( filename, in_enc = "GBK", out_enc="UTF-8" ):
	try:
		print("convert " + filename)
		f = open(filename,'rb')
		content = f.read()
		result = chardet.detect(content)#通过chardet.detect获取当前文件的编码格式串,返回类型为字典类型
		print(result)
		f.close()
		coding = result.get('encoding')#获取encoding的值[编码格式]
		if coding != 'UTF-8-SIG' and coding == 'utf-8':#文件格式如果是utf-8的时候,才进行转码
			print(coding + " to "+ out_enc +"!")
			new_content = content.decode(in_enc).encode(out_enc)
			f = open(filename, 'wb')
			f.write(new_content)
			f.close()
			print(" done")
		else:
			print(coding)
	except IOError as e:
	# except:
		print(e)
 
def explore(dir):
	for root, dirs, files in os.walk(dir):
		for file in files:
			path = os.path.join(root, file)
			convert(path)
 
def main(dir):
	if(os.path.isdir(dir)):
		fpaths = [fpath for fpath in os.listdir(dir) if  os.path.isfile(dir+"\\"+fpath) and fpath.endswith('.js')]
		dpaths = [dpath for dpath in os.listdir(dir) if  os.path.isdir(dir+"\\"+dpath)]
		for f in fpaths:
			convert(dir+"\\"+f,'utf-8','UTF-8-SIG')
		for d in dpaths:
			print(d)
			main(dir+"\\"+d)
	
 
if __name__ == "__main__":
    main('目录')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值