libguess的python包装器,用于确定字符串的字符编码的库。

python-libguess的Python项目详细描述


libguess允许找出某些文本的编码方式 给定的语言。这个库对于短文本字符串特别有用 它们本身不携带可靠的编码信息,比如id3标签 在MP3文件中。例如,我们可以在3中编码相同的日语字符串 不同的编码(utf-8、shift-jis、euc-jp)和libguess将 希望通过查看第一个 给定字符串的几个字节。

您还可以将其用作常规命令行程序,方法是 作为第一个参数的区域和之后可能的目标文件:

Usage: python -m guess REGION [INPUT_FILE]

If input file name is not given, this program reads from the standard input.

功能

确定编码(在字符串、区域中)

确定给定语言区域的字符串编码。

参数:
in_string–需要猜测编码的原始字节字符串。
region–猜测编码的REGION_*常量之一。
返回:
字符串值,指示给定区域或None中字符串参数的猜测编码(如果发生错误)。

作为一个使用示例,我们可以看到当给定日语时会发生什么 两种不同编码的文本:

>>> import guess
>>> guess.determine_encoding(u'\u3042'.encode('euc-jp'), guess.REGION_JP)
'EUC-JP'
>>> guess.determine_encoding(u'\u3042'.encode('utf-8'), guess.REGION_JP)
'UTF-8'

此函数的输出字符串可以直接给出 to iconv_open()c函数及其结果名称应为 与str.decode()函数的编码字符串兼容:

>>> encoded_value = u'\u3042'.encode('shift-jis')
>>> encoding = guess.determine_encoding(encoded_value, guess.REGION_JP)
>>> encoding
'SJIS'
>>> encoded_value.decode(encoding)
u'\u3042'

如果给定的区域名无效或基础 libguess_determine_encoding()调用因任何其他原因失败, 不返回任何值:

>>> encoding = guess.determine_encoding("asdf", "UNKNOWN")
>>> encoding is None
True

对区域名使用REGION_*常量。

验证utf8(在字符串中)

检查给定字符串是否为有效的utf-8字节序列。

参数:
in_string–要检查utf-8有效性的原始字节字符串。
返回值:
True如果给定的字符串是有效的utf-8字节序列,False否则。

这里包含这个函数是为了完整地使用libguess 接口。它给出了比utf-8更精确的结果。 例如glib中的函数。

>>> import guess
>>> guess.validate_utf8(u'\u3042'.encode('EUC-JP'))
False
>>> guess.validate_utf8(u'\u3042'.encode('UTF-8'))
True

地区名称

REGION_AR='阿拉伯语'
REGION_BL='波罗的海'
REGION_CN='中文'
REGION_GR='希腊语'
REGION_HW='希伯来语'
REGION_JP='日语'
REGION_KR='朝鲜语'
REGION_PL=“波兰语”
REGION_RU='俄语'
REGION_TR='土耳其语'
REGION_TW='台湾人'

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
当我使用vert时使用java。要创建路由,地址已在使用中   java十六进制字符串到int的转换工作不正常   从Select语句生成的java JPA Hibernate ID值   javajavax。面孔。FacesException:未上载任何文件   java Android从getIntent()获取应用程序组件   java神经网络用于查找特定类型的网站?   java如何在将文件流写入outputStream时激活XSS?   java无法在tomcat服务器中部署Spring应用程序   聊天java Web服务器,http部分响应   java使用ObjectOutputStream在单个ZipOutputStream中写入多个ZipPentry   java如何使用空布局管理器在JPanel上添加滚动条?   java Cucumber功能文件未绑定到粘合路径   mysql Java从值数组中选择   java setOnItemClickListener()不处理片段的listView   java maven和eclipse构建冲突   java OkHttp:无法通过POST方法向服务器发送数据   java无法在recycler视图中为不同的视图持有者实现稳定的ID   java只有一个类可以实例化所有其他类