Python脚本批量修复JS文件UTF-8编码乱码

沈知远
沈知远
发布时间:2026-10-13 | 4人浏览过
原创

本文介绍如何通过Python脚本批量解决HTML中引入JS文件时出现的乱码问题。当JS文件为UTF-8无BOM编码时,转换为UTF-8 BOM编码即可修复。文中提供了使用Notepad++手动转换及Python代码批量处理两种方案,并附带完整转换逻辑说明。

在HTML文件中引入JS文件时,若出现乱码现象,通常与文件编码格式有关。

如果JS文件原本采用UTF-8编码且不带BOM头,将其转换为带有BOM头的UTF-8编码即可解决乱码问题。

对于少量文件,可以使用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('目录') 

总结

以上介绍了利用Python解决JS文件UTF-8编码乱码的方法,希望能对大家有所帮助。如有疑问欢迎留言,小编会及时回复。感谢对本站的支持!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表