2024-09-28 21:20:56 发布
网友
我们正在从latin1迁移到UTF-8,有10万行python代码。在
另外,我是python新手(哈哈哈!)。在
我已经知道str()函数在接收Unicode时失败,所以我们应该使用unicode()来代替它,效果几乎相同。在
str()
unicode()
还有哪些“危险”的代码?在
有没有什么基本的指导方针/算法可以移植到UTF-8?它能写一个自动的“代码转换器”吗?在
str和unicode是类,不是函数。当您调用str(u'abcd')时,您正在初始化一个新字符串,该字符串将“abcd”作为变量。恰好str()可用于将任何类型的字符串转换为ascii str。在
str
unicode
str(u'abcd')
其他需要注意的地方是从文件/输入中读取时,或者基本上从不是为unicode编写的函数中以字符串形式返回的任何内容。在
享受:)
将python2.x快速转换为默认编码UTF-8的一种方法是set the default encoding。这种方法的缺点主要是它改变了所有库和应用程序的编码,因此请谨慎使用。我的公司在我们的产品应用程序中使用了这种技术,非常适合我们。它还与python3向前兼容,python3的默认编码是UTF-8。您仍然需要将str()的引用更改为unicode(),但不必显式地使用.decode()和{}指定编码。在
.decode()
Can it be written an automatic 'code transformer'? =)
No.str和{}是两种不同的类型,它们有不同的用途。在python2和python3中,不应该尝试用Unicode字符串替换每次出现的字节字符串。在
继续对二进制数据使用字节字符串。尤其是你要写入文件或网络套接字的任何内容都是字节。并对面向用户的文本使用Unicode字符串。在
在两者之间有一个灰色区域,内部ASCII字符串可以是字节或Unicode。在python2中这些通常是字节,在python3中通常是Unicode。在您乐于将代码限制为Python2.6+中,您可以将绝对字节字符串标记为b''和{},绝对字符字符串为u''和unicode,并使用''和{}作为“字符串的默认类型是什么”字符串。在
b''
u''
''
str
和unicode
是类,不是函数。当您调用str(u'abcd')
时,您正在初始化一个新字符串,该字符串将“abcd”作为变量。恰好str()
可用于将任何类型的字符串转换为asciistr
。在其他需要注意的地方是从文件/输入中读取时,或者基本上从不是为unicode编写的函数中以字符串形式返回的任何内容。在
享受:)
将python2.x快速转换为默认编码UTF-8的一种方法是set the default encoding。这种方法的缺点主要是它改变了所有库和应用程序的编码,因此请谨慎使用。我的公司在我们的产品应用程序中使用了这种技术,非常适合我们。它还与python3向前兼容,python3的默认编码是UTF-8。您仍然需要将}指定编码。在
str()
的引用更改为unicode()
,但不必显式地使用.decode()
和{No.}是两种不同的类型,它们有不同的用途。在python2和python3中,不应该尝试用Unicode字符串替换每次出现的字节字符串。在
str
和{继续对二进制数据使用字节字符串。尤其是你要写入文件或网络套接字的任何内容都是字节。并对面向用户的文本使用Unicode字符串。在
在两者之间有一个灰色区域,内部ASCII字符串可以是字节或Unicode。在python2中这些通常是字节,在python3中通常是Unicode。在您乐于将代码限制为Python2.6+中,您可以将绝对字节字符串标记为},绝对字符字符串为}作为“字符串的默认类型是什么”字符串。在
b''
和{u''
和unicode
,并使用''
和{相关问题 更多 >
编程相关推荐