代码之家  ›  专栏  ›  技术社区  ›  Nicolas

要从UTF-8转换为ASCII的Python脚本[重复]

  •  29
  • Nicolas  · 技术社区  · 15 年前

    这个问题已经有了答案:

    我试图用python编写一个脚本,将utf-8文件转换为ASCII文件:

    #!/usr/bin/env python
    # *-* coding: iso-8859-1 *-*
    
    import sys
    import os
    
    filePath = "test.lrc"
    fichier = open(filePath, "rb")
    contentOfFile = fichier.read()
    fichier.close()
    
    fichierTemp = open("tempASCII", "w")
    fichierTemp.write(contentOfFile.encode("ASCII", 'ignore'))
    fichierTemp.close()
    

    运行此脚本时,出现以下错误:

    UnicodeDecodeError:“ascii”编码解码器 无法解码位置13中的字节0xef: 序号不在范围内(128)

    我认为在encode方法中使用ignore参数可以忽略错误。但似乎不是。

    我愿意用其他方式来改变。

    3 回复  |  直到 15 年前
        1
  •  52
  •   Utku Zihnioglu    15 年前
    data="UTF-8 DATA"
    udata=data.decode("utf-8")
    asciidata=udata.encode("ascii","ignore")
    
        2
  •  8
  •   Tobu    15 年前

    UTF-8是ASCII的超集。要么你的UTF-8文件是ASCII,要么它不能被转换而不丢失。

        3
  •  7
  •   Ignacio Vazquez-Abrams    15 年前
    import codecs
    
     ...
    
    fichier = codecs.open(filePath, "r", encoding="utf-8")
    
     ...
    
    fichierTemp = codecs.open("tempASCII", "w", encoding="ascii", errors="ignore")
    fichierTemp.write(contentOfFile)
    
     ...
    
    推荐文章