Python论坛  - 讨论区

标题:[python-chinese] 关于string的encoding

2004年02月17日 星期二 13:35

zhao bear_sh at eastday.com
Tue Feb 17 13:35:31 HKT 2004

python-chinese,您好!

	  一直对python的string的codec有些不解,折腾了一阵,感觉有些明白了,但仍有些疙瘩。
	看帮助,修改site.py可以修改string的默认的encoding,但我把它修改系统值cp936或mbcs,动用sys.getdefaultencoding确实变了,
但如果脚本中有gb字符的话print显示可以但会出一个警告信息,表明文件中有非ascii字符(不是改过来吗),但如果在文件开头加上
  #-*- coding:mbcs -*- 的话就不出现警告了。似乎修改默认的encoding没有意义

        致
礼!
 				

        zhao
        bear_sh at eastday.com
          2004-02-17

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2004年02月17日 星期二 13:54

Jacob Fan jacob at exoweb.net
Tue Feb 17 13:54:21 HKT 2004

>但如果脚本中有gb字符的话print显示可以但会出一个警告信息
你把默认encoding变成非gb的,而文件中有gb字符,当然应该有警告啊。

-----Original Message-----
From: zhao [mailto:bear_sh at eastday.com] 
Sent: 2004年2月17日 13:36
To: python-chinese
Subject: [python-chinese] 关于string的encoding


python-chinese,您好!

	  一直对python的string的codec有些不解,折腾了一阵,感觉有些明白了,但仍有些疙瘩。
	看帮助,修改site.py可以修改string的默认的encoding,但我把它修改系统值cp936或mbcs,动用sys.getdefaultencoding确实变了,
但如果脚本中有gb字符的话print显示可以但会出一个警告信息,表明文件中有非ascii字符(不是改过来吗),但如果在文件开头加上
  #-*- coding:mbcs -*- 的话就不出现警告了。似乎修改默认的encoding没有意义

        致
礼!
 				

        zhao
        bear_sh at eastday.com
          2004-02-17


[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2004年02月17日 星期二 14:32

Jacob Fan jacob at exoweb.net
Tue Feb 17 14:32:17 HKT 2004

不好意思,我上封信说错了。
site.py里面的encoding是给python c api 里面的_PyUnicode_Init()用的,就是说例如你用unicode函数创建一个unicode字符串,如果没有指定用哪个encoding,Python会使用encoding里面的那个。
而python读取,解析一个脚本文件时,是不用这个的。如果你前面没有encoding的声明,它就一律当ascii处理。具体情况请看PEP 0263 :
http://www.python.org/peps/pep-0263.html

-----Original Message-----
From: zhao [mailto:bear_sh at eastday.com] 
Sent: 2004年2月17日 13:36
To: python-chinese
Subject: [python-chinese] 关于string的encoding


python-chinese,您好!

	  一直对python的string的codec有些不解,折腾了一阵,感觉有些明白了,但仍有些疙瘩。
	看帮助,修改site.py可以修改string的默认的encoding,但我把它修改系统值cp936或mbcs,动用sys.getdefaultencoding确实变了,
但如果脚本中有gb字符的话print显示可以但会出一个警告信息,表明文件中有非ascii字符(不是改过来吗),但如果在文件开头加上
  #-*- coding:mbcs -*- 的话就不出现警告了。似乎修改默认的encoding没有意义

        致
礼!
 				

        zhao
        bear_sh at eastday.com
          2004-02-17


[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2004年02月17日 星期二 21:02

John Li johnli at ahlt.net
Tue Feb 17 21:02:47 HKT 2004

> 	看帮助,修改site.py可以修改string的默认的encoding,但我把它修改
系
> 统值cp936或mbcs,动用sys.getdefaultencoding确实变了,
> 但如果脚本中有gb字符的话print显示可以但会出一个警告信息,表明文件中有
非
> ascii字符(不是改过来吗),但如果在文件开头加上

I have read that it is better to modify sitecustomize.py than
site.py.  This is because site.py can be overwritten by
a python upgrade.  sitecustomize.py is called by site.py.
If it does not exist, you can create it and put it
anywhere in the python path.

John

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2024

    京ICP备05028076号