UT8问题-有没有办法转换奇怪的字符ä;符合它的德文特征ä;用Python?
我有一个.txt文件,其中应该包含像ä,ö,ß,ü这样的德语Umlauts。但是,这些角色并不是以这样的方式出现的,而是以÷代替ä,以Ã代替Ü等等。发生这种情况是因为.txt文件以ANSI编码存储。现在,当我以SAS(DataStep)或Python(with.read_csv)的形式导入此文件时,这些奇怪的字符会出现在.sas7bat和Python数据框中,而不是像ä、ö、ü、ß这样的适当字符 解决此问题的一个方法是-UT8问题-有没有办法转换奇怪的字符ä;符合它的德文特征ä;用Python?,python,utf-8,diacritics,Python,Utf 8,Diacritics,我有一个.txt文件,其中应该包含像ä,ö,ß,ü这样的德语Umlauts。但是,这些角色并不是以这样的方式出现的,而是以÷代替ä,以Ã代替Ü等等。发生这种情况是因为.txt文件以ANSI编码存储。现在,当我以SAS(DataStep)或Python(with.read_csv)的形式导入此文件时,这些奇怪的字符会出现在.sas7bat和Python数据框中,而不是像ä、ö、ü、ß这样的适当字符 解决此问题的一个方法是- 在标准记事本中打开文件 按“另存为”,然后出现一个窗口 然后在下拉列表中
是否有任何Python库可以自动将这些奇怪的字符转换为它们的正确字符,如÷被翻译成ä等?您是否尝试使用编解码器库
import codecs
your_file= codecs.open('your_file.extension','w','encoding_type')
如果文件包含正确的代码点,则只需指定正确的编码。在大多数sane平台上,Python3默认为UTF-8,但是如果您需要代码也在Windows上运行,您可能需要详细说明编码
打开(文件名为'r',编码为'utf-8')作为f:
#用f做事
如果文件实际上包含,在一般情况下,没有简单的方法来恢复所有可能的方法来扭曲文本,但是一个常见的错误是假设文本是拉丁语-1,并将其转换为UTF-8,而实际上输入已经是UTF-8。你可以做的是说你想要拉丁语-1,并且可能确保你一读完它就用正确的格式保存它
打开(文件名为'r',编码为'latin-1')作为inp\
打开('newfile','w',encoding='utf-8')作为输出:
对于inp中的行:
输出写入(行)
图书馆声称能够识别和纠正许多常见的mojibake问题。谢谢您的留言。对不起,这没用。我就是这样试的。首先,我阅读了文件并最终编写了它,如图所示,但问题仍然是一样的。您使用的是python 2还是python 3?您好,我使用的是python 3+而不是python 2+,旧版本。