我想确保我的代码中所有的字符串都是unicode,所以我使用unicode_literals,然后我需要编写字符串来文件:
from __future__ import unicode_literals
with open('/tmp/test', 'wb') as f:
f.write("中文") # UnicodeEncodeError
所以我需要这样做:
from __future__ import unicode_literals
with open('/tmp/test', 'wb') as f:
虽然题目是个问题,但简短的回答显然是否定的。我试过了。真正的问题是为什么?字符串是一些非ascii字符,如中文,XXX是字符串的当前编码。
>>> u'中文' == '中文'.decode('gbk')
False
//The first one is u'\xd6\xd0\xce\xc4' while the second one u'\u4e2d\u6587'
这个例子在上面。我使用的是中文简化的窗口。默认编码是gbk,python也是如此。我得到了两个unicode对象不相等。
更新
a =
我已通过以下方式将系统区域设置设置为中文(简体中文
ControlPanel >> Region and Language >> Administrative >> Change System locale
然后,我重新启动了计算机并运行我的.NET 4.0应用程序。
正在运行
Thread.CurrentThread.CurrentCulture.Name
返回
en-GB
为什么?