python 判断一个字符能否用gbk和utf8编码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 判断一个字符能否用gbk和utf8编码相关的知识,希望对你有一定的参考价值。

比如: 一个字符串, 我要把不能用gbk编码的字符给去除掉. 我要怎么判断一个字符他是否能被gbk编码.

使用chardet库。它会去猜测文本文件的编码,并返回形如:
编码类型:utf-8
置信度:0.9
这样的结果,也就是说chardet断定该文件有90%的可能性是utf-8编码的。
不过chardet的缺陷就是,它不能完全100%确定文件的编码类型。
目前我的做法是,如果置信度超过0.95,那么就认定chardet的判断结果是正确的。否则,再加上一些人机交互操作进行判断。

目前,chardet库官网提供的版本只适用于Python 2,如果您使用的是Python 3.x,我可以另外上传一个。
参考技术A 使用chardet库。它会去猜测文本文件的编码,并返回形如:
编码类型:utf-8
置信度:0.9
这样的结果,也就是说chardet断定该文件有90%的可能性是utf-8编码的。
不过chardet的缺陷就是,它不能完全100%确定文件的编码类型。
目前我的做法是,如果置信度超过0.95,那么就认定chardet的判断结果是正确的。否则,再加上一些人机交互操作进行判断。

目前,chardet库官网提供的版本只适用于Python 2,如果您使用的是Python 3.x,我可以另外上传一个。追问

你这样抄别人的答案, 也太无耻了吧

Python字符串

从编码和常用字符串函数两方面进行总结

1. 编码

  计算机里面,编码方法有很多种,英文的一般用ascii,而中文有unicode,utf-8,gbk,utf-16等等。

  unicode是 utf-8,gbk,utf-16这些的父编码,这些子编码都能转换成unicode编码,然后转化成子编码,例如utf8可以转成unicode,再转gbk,但不能直接从utf8转gbk

  所以,python中就有两个方法用来解码(decode)与编码(encode),解码是子编码转unicode,编码就是unicode转子编码

  #encoding:UTF-8

2. 常用函数

  lower()#大写转小写

  upper() #小写转大写

  swapcase() #大小写互换

  capitalize() #首字母大写

  ljust rjust center zfill expandtabs #字符串输出对齐

  find rfind #字符串查找

  index rindex #字符索引

  count #字符出现的次数

  replce strip lstrip rstrip #字符串替换

  split rsplit lsplit

  join(seq) #把seq代表的序列--字符串序列,用字符串S链接起来

  startwith endwith

  isalnum #是否全是字母和数字,并至少有一个字符

  isalpha #是否全是字母,并至少有一个字符

  isdigit #是否全是数字

  isspace islower isupper istitle

  

  

以上是关于python 判断一个字符能否用gbk和utf8编码的主要内容,如果未能解决你的问题,请参考以下文章

快速判断UTF8字符串中是不是有中文

彻底搞懂编码 GBK 和 UTF8

如何将gbk字符文件转为utf8字符文件

gbk和utf8的区别

QT中将gbk字符转换为utf-8字符

Python字符串