我试图理解UTF-8、ASCII和Unicode之间的区别。我已经读过Unicode, UTF, ASCII, ANSI format differences。 但是我从Python那里得到了一些错误,我不知道如何才能知道字符串的格式。在
例如:
1# 'Klaus-Groth-Straße, Ballahausen'
2# 'Capit\xe1n\n'
3# u'Capit\xe1n\n'
我猜想
u'
,3}=Unicode?在我已经尝试将string#1写入一个文件,并为自己编写了一个小函数
^{pr2}$在我将字符串写入txt
文件之前,我想替换这些字母以使文本文件中的拼写正确(Klaus Groth Straße,Buchholz in der Nordheide)。在
但它不起作用:/
你能告诉我我的3个例子属于哪种类型的字符串-Unicode或ASCII或UTF-8?我如何使用像1这样的字符串来正确拼写txt
?在
我自己也遇到了一个类似的问题,我现在已经解决了。 我使用Delphi9,问题是从文件中读取UTF8,然后再写回去。 长话短说,各种口音和/或坟墓或类似的东西在写信时就消失了。 编码或解码UTF8的工具似乎不能完全完成任务,或者Delphi本身在后台做一些隐藏的工作。在
我最后写了我自己的UTF8解码器和编码器,现在一切都完美地工作。 UTF8方案实际上相当简单。一点点位移动和加法,你就在解码和编码上了。 我用的是:“http://tools.ietf.org/html/rfc3629” 作为我工作的参考。在
至少它给了你一个完美的解释UTF8标准。在
您是对的,示例3是一个Unicode字符串,因为前面的
u
。这可能是最容易处理的。在#1和#2都是字节字符串。#1完全由ASCII字符组成,因此您不会从中得到任何Unicode错误;但是它包含一个HTML实体,您可能希望将其转换为字符。转换HTML实体有多种策略,请参阅问题Decoding HTML entities with Python。结果应该是Unicode字符串。在
#2包含的字符不是ASCII,但也不是Unicode。如果是UTF-8字符串,那么至少有2个十六进制字节,但只有一个。这意味着它是其他字符编码的一部分,需要在使用它之前对其进行解码。Windows1252代码页可能是一个很好的猜测。在
当您写回一个文件时,您需要将Unicode字符串转换回字节字符串。使用字符串上的
^{pr2}$encode
方法执行此操作。你需要决定你的文件是什么编码。在或者
相关问题 更多 >
编程相关推荐