Python。相同的字符串以不同的编码出现?

标签 python character-encoding

我有以下代码:

students_list = []

for student in students:

    student_dict = {}

    dict_student['nane'] = name
    logger.info(student_dict['name'])
    # prints ==> MÓNICA MENÉNDEZ GALLEGOS

    dict_student['address'] = address
    logger.info(student_dict['address'])
    # prints ==> GENERAL YAGÜE 32

    students_list.append(dict_student)

logger.info(students_list)
# prints => [{'name':u'M\xd3NICA MEN\xc9NDEZ GALLEGOS', 'address': u'GENERAL YAG\xdcE 32}

正如您所看到的,这是一段非常简单的代码。我得到一个值,将其分配给字典并将所述字典附加到列表中。

令我烦恼的是,当我记录 student_dict['name'] 的值时,我可以正确地看到所有字符。

但是,当我记录整个列表时,其数据无法正确显示。

这是为什么?

最佳答案

您正在看到repr列表中字符串的表示形式:

[{'name':u'M\xd3NICA MEN\xc9NDEZ GALLEGOS', 'address': u'GENERAL YAG\xdcE 32}

当您打印时,您将看到 str 输出。

它们都是相同的 unicode 字符串:

In [1]: (l[0]["address"]) 
Out[1]: u'GENERAL YAG\xdcE 32'
In [2]: (l[0]["address"]) == u"GENERAL YAGÜE 32"
Out[2]: True

关于Python。相同的字符串以不同的编码出现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28281688/

相关文章:

python - 无法使用 tf.summary() 为测试集存储准确度

Python 3.5.1 - Asyncio - 检查套接字客户端是否已断开连接

python - 使用 Python 中的 Wordnet 同义词集处理意大利语

java - 将字符保存到文件时出现问题

mysql - 编码不同于utf-8的csv文件中的数据以什么编码写入mysql?

MySQL 不正确的整数值(编码)

python - 筛选“pandas”中不包含字母(alpha)的所有行

python - 如何在 python 中定义全局列表

sql-server - 英文和中文文本的文件编码

java - 控制台输出中的 IntelliJ IDEA 编码不正确