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

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

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

『贰』 python如何解析包含不同编码的字符串

安装chardet模块
chardet文件夹放在/usr/lib/python2.4/site-packages目录专下属

[root@sha-sso-data01 chardet]# python
Python 2.4.3 (#1, Sep 21 2011, 19:55:41)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-51)] on linux2
Type "help", "right", "credits" or "license" for more information.
>>> import chardet
>>> chardet.detect("我")
{'confidence': 0.505, 'encoding': 'utf-8'}
>>>

『叁』 python怎么查看字符串编码

安装chardet模块
chardet文件夹放在/usr/lib/python2.4/site-packages目录下版

[root@sha-sso-data01 chardet]# python
Python 2.4.3 (#1, Sep 21 2011, 19:55:41)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-51)] on linux2
Type "help", "right", "credits" or "license" for more information.
>>> import chardet
>>> chardet.detect("我权")
{'confidence': 0.505, 'encoding': 'utf-8'}
>>>

『肆』 python里如何让判断输入的编码是什么比如,如果输入中文则判断为GB2312

供参考。gb312本来就是标准ascii的一种扩充,ascii可以视同为gb312的子集。所以,如果var的值全部是在ascii里面的话,转成gb312后也还是属于ascii,所以使用detect函数的时候,编码还是ascii(当然同时也属于gb312);如果var的值不是全部在ascii里面的话,语句var
=
var.decode('ascii')可能会出错。
只要var的值是英文(内码0-127),转换不转换,都已经是gb2312编码。

『伍』 python 判断列表内容与字符串是否相等(中文编码问题)

你用的应该不是python3吧,麻烦你告诉我你用的python的版本
不好意思,不过我要说,你说
s.attrib.get('dirname')==dirname
怎么着也检测不出来 是什么意思,是指这个判断总是为False吗?

还有,冒昧的问一下,
你前提那里
第二行,
dirname=''.join(list_full_filename[len_input_dir]) 内容等于“文件1”
意思是说dirname变量等于“文件1”吗?

第三行,
s.attrib.get('dirname')=“文件1” 内容也等于“文件1”
意思是s.attrib.get('dirname')的值是“文件1”是吧??
不过你这里的s是什么呢????

要我说,从下面两句
print isinstance(s.attrib.get('dirname'),str) true
print isinstance(dirname,str) false
就可以知道:
s.attrib.get('dirname')==dirname
必然返回False的。应为他们的类型甚至都不一样。
你可以这样用:
unicode(s.attrib.get('dirname'))==dirname
不过先请告诉我你用的python的版本吧。不同版本的python对字符串的处理方法不一样的。

我知道我肯能还没回答的很好,不过由于你问的问题我不是太理解,所以请你在追问,把问题描述的清楚一些。

『陆』 python判断字符串中是否只有ASCII编码字符

ascii字符长度只有8位,而其他编码的字符往往有16位或32位

利用这一点可以进行判断

将字符串解码成unicode,判断长度是否与解码前相同

#-*-coding:utf-8-*-
a='中国123'
b=a.decode('utf-8')
printa,len(a)==len(b)

a='abc'
b=a.decode('utf-8')
printa,len(a)==len(b)

『柒』 python怎么判断变量和字符串是否相等(编码问题)

python中的数据类型有数字、字符串,列表、元组、字典、集合等。有两种方法判断一个变量的数据类型。两种方法:
第一种方法:
第二种方法:

『捌』 python怎样查看当前字符串的编码格式

查看当前字符抄串的编码格式的代码为:Type "now", "right", "credits" or "license" for more information.

『玖』 python怎么知道一个字符串的编码方式

字符串的编码,有很多种如utf-8,gb2312,gbk,gb18030,bz2,zlib,big5,bzse64

python 对编码的处理有两个方法,decode()和 encode()方法

a='你好'
b='python'
printa.decode('utf-8').encode('gbk')##decode方法把字符串转换为对象,然后通过encode方法转换为指定的编码字符串对象
printb.decode('utf-8')##decode方法把字符串转换为unicode对象

所以要让python(或者说机器)来识别字符串的编码,是一件很困难的事。编码就是汉字和整数之间的对应,同一个整数,可以在不同的编码中,都有对应的汉字。比如下面的例子,比特流'xe6xb0xb4xe5xa3xb6'在四种编码中都有对应的汉字,但只有在utf-8编码下,它对应的汉字才有意义。我们可以一眼看出这点,可是要让计算机做到这点,就很难了。

>>>s='水壶'
>>>s
18:'xe6xb0xb4xe5xa3xb6'
>>>printunicode(s,'big5')
瘗游ㄥ
>>>printunicode(s,'gbk')
姘村6
>>>printunicode(s,'gb2312')
姘村6
>>>printunicode(s,'utf-8')
水壶