python中编码

python中的str对象其实就是"8-bit string" ,字节字符串由unicode经过编码(encode)后的字节组成的,
本质上类似java中的byte[]。 
而python中的unicode对象应该才是等同于java中的String对象,或本质上是java的char[]。
Python内部的字符串一般都是 Unicode编码,代码中字符串的默认编码与代码文件本身的编码是一致的。 所以要做一些编码转换通常是要以Unicode作为中间编码进行转换的,
即先将其他编码的字符串解码(decode)成 Unicode,再从 Unicode编码(encode)成另一种编码。
str.decode()----> unicode对象 unicode.encode()------> str对象 中文编码(默认市asci) 在汉前加个u(u’汉字‘--->它实则为unicode对象),这个u表示将后面跟的字符串以unicode格式存储, 如果不加upython会根据代码第一行标称的(# -*- coding: utf-8 -*- )编码识别代码中的汉字,然后转换成unicode对象内部处理使用。

Str =  '\u597d\u597d' 
Str.decode('unicode_escape')   能将字符串解码为unicode字符串


  
  
from chardet import detect
detect('文本')  #探测编码 Unicode :\u0000
二进制编码:\x00\x00,utf-8,cp936都是二进制编码
# Unicode转化为二进制编码中的一种:utf8
unicodeStr . encode ( 'utf8' )
# 二进制编码根据自己的编码种类转化为Unicode
utf8Str . decode ( 'utf8' )

# 字符串中混进了\x00
String = 'Utf-8字\x00符串'
print ( repr ( String . decode ( 'utf8' , 'replace' ) ) )
print ( repr ( String . decode ( 'utf8' , 'ignore' ) ) )
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python,字符串是以Unicode编码方式存储的,可以表示任意字符,包括文字符。Unicode是一个国际标准,为每个字符分配一个唯一的数字码点,支持世界上所有的字符集,包括文、日文、韩文等。为了在Python正确处理编码,可以使用字符串的encode()和decode()方法。str.encode(encoding="utf-8")可以将字符串按照指定的编码方式编码成二进制数据,而bytes.decode(encoding="utf-8")则可以将二进制数据按照指定的编码方式解码成字符串。此外,Python还提供了一些与字符编码相关的函数和模块,例如chardet模块可以自动检测文本文件的编码方式,而codecs模块提供了一些通用的编码解码方法。当读写编码的文本文件时,在打开文件时需要指定正确的编码方式,以防止读取文件内容出现乱码。通过在打开文件时使用encoding参数,可以指定文件的编码方式。例如,在使用with语句读取UTF-8编码的文本文件时,可以使用以下代码:with open("test.txt", encoding="utf-8") as f: text = f.read() print(text) [1][2][3123 #### 引用[.reference_title] - *1* *2* *3* [python入门必备:深入了解Python 编码](https://blog.csdn.net/weixin_43170061/article/details/130254082)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值