py文件开头“coding: UTF-8”真的起作用吗?

seai 2013-08-15 09:59:34
这样可以工作:

# -*- coding: UTF-8 -*-
print "中文"



但这不行了:

# -*- coding: UTF-8 -*-
s=u'test' #这里的u'test'本来是数据库中取得的值。为了说明问题这写的
print "中文"+s


难到非得写成这样?
# -*- coding: UTF-8 -*-
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
s=u'test'
print "中文"+s


总的测下来,在文件头指定“coding: UTF-8”,只是使得注释中可以写中文了,对于代码中的字符串,一点作用也没有。

请各位老大来解答解答啊
...全文
8277 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
PrayLife 2016-03-30
  • 打赏
  • 举报
回复
#coding:utf-8 这样就行,没有必要写的太花哨。
yueguanghaidao 2013-09-10
  • 打赏
  • 举报
回复
貌似各位都没有完全理解# -*- coding: UTF-8 -*-的含义啊 含义:该文件中的字符串都以utf8编码
# -*- coding: UTF-8 -*-
a="哈哈"
print a
这样是没问题的
#
a="哈哈"
print a
这样是有问题的,会报: SyntaxError: Non-ASCII character '\xe5' in file cs.py on line 1, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
seai 2013-08-15
  • 打赏
  • 举报
回复
好吧,我看还是使用自定义usercustomize模块来解决比较pythonic
seai 2013-08-15
  • 打赏
  • 举报
回复
我的意思是,我希望有一个方式指定代码的默认字符集为utf-8,本来以为"# -*- coding: UTF-8 -*-"是这个作用的, 但现在看来行不通。。。 不想每个字符串刻意加上u来声明啊,因为在python3中,这样做就是多余的。 我希望的是一个简单的声明来达到这个目的,但 reload(sys) sys.setdefaultencoding('utf-8') 这个方式又不够pythonic,最起码,这个“reload(sys)”显得太奇怪了
panghuhu250 2013-08-15
  • 打赏
  • 举报
回复
# -*- coding: UTF-8 -*- s=u'test' #这里的u'test'本来是数据库中取得的值。为了说明问题这写的 print "中文"+s 最后一行应为: [code=pytohn] print u"中文"+s [/code] "中文"是str,和unicode相加会有错。u"中文"才是unicode string。
Mr显 2013-08-15
  • 打赏
  • 举报
回复
# -*- coding: gbk -*- print u"中文" 这样也行
Mr显 2013-08-15
  • 打赏
  • 举报
回复
# -*- coding: UTF-8 -*- print u"中文" 这样就行了。。。

37,718

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧