2

我在使用 Python 2.5 的谷歌应用引擎上。我的应用程序必须处理多语言,所以我必须处理 utf-8。

我做了很多谷歌,但没有得到我想要的。

1.有什么用# -*- coding: utf-8 -*-

2.有什么区别

s=u'Witaj świecie'
s='Witaj świecie'

'Witaj świecie' 是一个 utf-8 字符串。

3.当我将.py文件保存到'utf-8'时,我还需要u在每个字符串之前吗?

4

1 回答 1

6

u'blah'把它变成另一种字符串( typeunicode而不是 type str) - 它使它成为一个 unicode 代码点序列。没有它,它就是一个字节序列。只有字节可以写入磁盘或网络流,但您通常希望使用 Unicode(尽管 Python 和一些库会为您进行一些转换) - 编码(utf-8)是之间的转换这些。所以,是的,你应该u在你所有的文字前面使用,它会让你的生活更轻松。请参阅Programatic Unicode以获得更好的解释。

编码行告诉 Python 你的文件采用什么编码,以便 Python 可以理解它。同样,从磁盘读取会给出字节 - 但 Python 想要查看字符。在 Py2 中,代码的默认编码是 ASCII,因此编码行允许您首先将内容ś直接放在 .py 文件中 - 除此之外,它不会改变代码的工作方式。

于 2012-05-26T07:41:14.870 回答