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

UT8问题-有没有一种方法可以在Python中将奇怪的字符转换成正确的德语字符?

  •  1
  • cph_sto  · 技术社区  · 7 年前

    一个 解决方法

    1. 在标准记事本中打开文件。
    2. 按“另存为”,然后出现一个窗口。

    现在,当您在SAS或Python中导入文件时,所有内容都被正确导入。

    但是,有时我拥有的.txt文件非常大(以GBs为单位),所以我无法打开它们并执行此黑客程序来解决此问题。

    我可以使用.replace()函数,用真实的字符替换这些奇怪的字符,但是可能有一些奇怪字符的组合我不知道,这就是为什么我希望避免这种情况。

    1 回复  |  直到 7 年前
        1
  •  2
  •   S.C.A    7 年前

    import codecs
    your_file= codecs.open('your_file.extension','w','encoding_type')
    
        2
  •  0
  •   tripleee    5 年前

    如果文件包含正确的代码点,只需指定正确的编码即可。在大多数sane平台上,python3将默认为UTF-8,但是如果您需要在Windows上运行代码,那么您可能需要详细说明编码。

    with open(filename, 'r', encoding='utf-8') as f:
       # do things with f
    

    mojibake 在一般情况下,没有简单的方法可以恢复所有可能的方式来破坏文本,但一个常见的错误是假设文本是拉丁-1,并将其转换为UTF-8,而实际上输入已经是UTF-8。你能做的就是 你想要拉丁文-1,并且可能确保你一读完它就以正确的格式保存它。

    with open(filename, 'r', encoding='latin-1') as inp, \
         open('newfile', 'w', encoding='utf-8') as outp:
        for line in inp:
            outp.write(line)
    

    ftfy 图书馆声称能够识别和纠正一些常见的mojibake问题。

    推荐文章