python3-GBK编码字符串截取指定位置字串
来源:互联网 发布:淘宝租房在哪个地方 编辑:程序博客网 时间:2024/06/03 15:31
python3-GBK编码字符串截取指定位置字串
Python3中默认是UTF-8,我们通过以下代码查询得到:
>>>import sys
>>>sys.getdefaultencoding()
'utf-8'
在utf-8环境中,中文字与英文字符一样处理,都是一个字符长度,如下:
>>>s='中文1234编码5678'
>>>s[:1]
'中文
>>>s[2]
'1'
>>>s[6:8]
'编码'
我们平时使用的中文文本经常是GBK格式,在文本显示时中文字符通常占有2个ASCII字符宽度,但字符串操作中时只算1个字符长度,这样在格式化输入输出时,如果中英文混排,字符串长度与显示长度就有不一致情况,计算比较复杂。
解决方法:先用encode方法将字符串转换为bytes,encode的作用就是使我们看到的直观的字符转换成计算机内的字节形式,这里encode的参数encoding='gbk'表示编码为GBK方案,errors='ignore'表示忽略错误。GBK编码方案中每个中文字编码为2个字节,这样就可以与排版显示的宽度一致,截取指定位置字串后再使用decode方法解码为GBK格式。编码方案也可以使用其他如utf-8、unicode等,但这样每个中文字符编码长度有可能与排版显示长度不一样,在格式化输出时计算长度就有点复杂了:
>>> ss = s.encode(encoding='gbk',errors='ignore')
>>> print(ss)
b'\xd6\xd0\xce\xc41234\xb1\xe0\xc2\xeb5678'
>>> ss[:4].decode(encoding='gbk',errors='ignore')
'中文'
>>> ss[8:12].decode(encoding='gbk',errors='ignore')
Python3中默认是UTF-8,我们通过以下代码查询得到:
>>>import sys
>>>sys.getdefaultencoding()
'utf-8'
在utf-8环境中,中文字与英文字符一样处理,都是一个字符长度,如下:
>>>s='中文1234编码5678'
>>>s[:1]
'中文
>>>s[2]
'1'
>>>s[6:8]
'编码'
我们平时使用的中文文本经常是GBK格式,在文本显示时中文字符通常占有2个ASCII字符宽度,但字符串操作中时只算1个字符长度,这样在格式化输入输出时,如果中英文混排,字符串长度与显示长度就有不一致情况,计算比较复杂。
解决方法:先用encode方法将字符串转换为bytes,encode的作用就是使我们看到的直观的字符转换成计算机内的字节形式,这里encode的参数encoding='gbk'表示编码为GBK方案,errors='ignore'表示忽略错误。GBK编码方案中每个中文字编码为2个字节,这样就可以与排版显示的宽度一致,截取指定位置字串后再使用decode方法解码为GBK格式。编码方案也可以使用其他如utf-8、unicode等,但这样每个中文字符编码长度有可能与排版显示长度不一样,在格式化输出时计算长度就有点复杂了:
>>> ss = s.encode(encoding='gbk',errors='ignore')
>>> print(ss)
b'\xd6\xd0\xce\xc41234\xb1\xe0\xc2\xeb5678'
>>> ss[:4].decode(encoding='gbk',errors='ignore')
'中文'
>>> ss[8:12].decode(encoding='gbk',errors='ignore')
'编码'
阅读全文
0 0
- python3-GBK编码字符串截取指定位置字串
- 字符串截取指定位置前后字符串
- 字符串的指定位置的截取
- NSString从字符串开头截取到指定字符的位置
- nsstring 从字符串开头截取到指定字符的位置 nsstring字符串的截取
- java按指定的字节Byte的起始位置截取长度截取字符串
- Server.UrlEncode()指定GBK编码
- VC带GBK编码的字符串拷贝函数,防止截取半个中文字符的情况发生
- 按 字节截取分别以GBK 和 utf-8 编码的 字符串的java程序。
- 截取指定长度字符串
- 指定字符串的截取
- 截取指定字符串
- Android截取指定字符串
- C strncpy 从指定位置开始截取指定长度子字符串方法
- 截取GB2312以及GBK编码的字符串,从第一个字符开始截取,2个长度代表一个汉字
- 根据需要得字符串长度截取字串
- 字符串的分割和字串截取
- 关于python3里gbk编码的问题解决
- 8.笔记 MySQL学习——检索信息
- Unity怎样学才能学得更快更好?
- CSS3选择器
- OpenCV004:空白图片生成与基本图形绘制
- 9.笔记 MySQL学习——处理日期
- python3-GBK编码字符串截取指定位置字串
- Java多线程学习(吐血超详细总结)
- 购票系统模式
- Android开发自定义组合控件
- vs2013用qt编写串口通信程序
- 10.笔记 MySQL学习——模式匹配
- ssm三大框架基本配置
- 蓝桥杯 入门训练 Fibonacci数列
- HDU 2546 饭卡(01背包)