python字符串编码问题

 超级冷笑话驿站料_663 发布于 2023-02-09 10:32

python中是否有一个函数相当于用'u'为字符串添加前缀?

假设我有一个字符串:

a = 'C\xc3\xa9dric Roger'

我想将其转换为:

b = u'C\xc3\xa9dric Roger'

这样我就可以将它与其他unicode对象进行比较.我怎样才能做到这一点?我的第一直觉是尝试:

>>>> b = unicode(a)
Traceback (most recent call last):
File "", line 1, in 
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 1: ordinal not in range(128)

但这似乎是试图解码字符串.是否有一个函数可以在不进行任何解码的情况下转换为unicode?(这是'u'前缀的作用或我误解了吗?)

1 个回答
  • 您需要指定编码:

    unicode(a, 'utf8')
    

    或者,使用str.decode():

    a.decode('utf8')
    

    但请为您的输入选择正确的编解码器; 你在这里明显有UTF-8数据,但情况可能并非总是如此.

    为了理解这一点,我建议您阅读:

    绝对最低每个软件开发人员绝对必须知道关于Unicode和字符集(没有任何借口!)作者:Joel Spolsky

    在Python的Unicode指南

    Ned Batchelder的实用Unicode

    2023-02-09 10:35 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有