相关疑难解决方法(0)

如何在Python中设置默认编码(setdefaultencoding()函数不存在)?

可能重复:
更改python的默认编码?

我正在阅读python中的潜水,它提到在XML解析章节中设置python的默认编码方案.

setdefaultencoding在使用 python的安装-DIR /站点包/ pyanaconda/sitecustomize.py

import sys
sys.setdefaultencoding('utf-8')
Run Code Online (Sandbox Code Playgroud)

但是当我运行脚本时,它会引发:

AttributeError: 'module' object has no attribute 'setdefaultencoding'
Run Code Online (Sandbox Code Playgroud)

无论如何,如何设置默认编码?

我正在使用python 2.7

解决方案: 在python安装中找到site.py.

编辑setencoding功能

def setencoding():
    encoding = "ascii" 
    if 0:
        import locale
        loc = locale.getdefaultlocale()
        if loc[1]:
            encoding = loc[1]
    if 0: #changes comes here, change 0 to 1
        encoding = "undefined" #the encoding you want
    if encoding != "ascii":
        sys.setdefaultencoding(encoding) 
Run Code Online (Sandbox Code Playgroud)

我正在使用python 2.7

python encoding default

16
推荐指数
2
解决办法
3万
查看次数

str和unicode之间的区别:为什么Redis在传递unicode时会返回二进制数据?

经过2个 提问有关数据类型之间的区别strunicode,我还在疑惑在下面.

在第1区,我们看到城市的类型unicode正如我们所期望的那样.

然而在方框2中,在通过磁盘往返(redis)之后,城市的类型是str(并且表示不同).

存储在磁盘上,读入和写入的教条在某处失败了.utf-8unicodeutf-8

为什么是第二个实例type(city) str而不是unicode

同样重要的是,这有关系吗?你关心你的变量是否unicode还是str,还是你忘却的区别只是,只要代码"做正确的事"?

# -*- coding: utf-8 -*-

# Block 1
city = u'Düsseldorf'
print city, type(city), repr(city)
# Düsseldorf <type 'unicode'> u'D\xfcsseldorf'

# Block 2
import redis
r_server = redis.Redis('localhost')
r_server.set('city', city)
city = r_server.get('city')
print city, type(city), repr(city)
# Düsseldorf <type 'str'> 'D\xc3\xbcsseldorf'
Run Code Online (Sandbox Code Playgroud)

python string unicode utf-8 redis

4
推荐指数
1
解决办法
5965
查看次数

标签 统计

python ×2

default ×1

encoding ×1

redis ×1

string ×1

unicode ×1

utf-8 ×1