python代码文件的编码

py文件默认是ASCII编码,中文在显示时会做一个ASCII到系统默认编码的转换,这时就会出错:SyntaxError: Non-ASCII character。需要在代码文件的第一行或第二行添加编码指示:

# coding=utf-8 ##以utf-8编码储存中文字符

print '中文'像上面那样直接输入的字符串是按照代码文件的编码来处理的,如果用unicode编码,有以下2种方式:

s1 = u'中文' #u表示用unicode编码方式储存信息

s2 = unicode('中文','gbk')

unicode是一个内置函数,第二个参数指示源字符串的编码格式。

decode是任何字符串具有的方法,将字符串转换成unicode格式,参数指示源字符串的编码格式。

encode也是任何字符串具有的方法,将字符串转换成参数指定的格式。

python字符串的编码

用 u'汉字' 构造出来的是unicode类型,不用的话构造出来是str类型

str的编码是与系统环境相关的,一般就是sys.getfilesystemencoding()得到的值

所以从unicode转str,要用encode方法

从str转unicode,所以要用decode

例如:

# coding=utf-8 #默认编码格式为utf-8s =u'中文'#unicode编码的文字prints.encode('utf-8')#转换成utf-8格式输出 prints #效果与上面相同,似乎默认直接转换为指定编码

我的总结:

u=u'unicode编码文字'g=u.encode('gbk')#转换为gbk格式printg #此时为乱码,因为当前环境为utf-8,gbk编码文字为乱码str=g.decode('gbk').encode('utf-8')#以gbk编码格式读取g(因为他就是gbk编码的)并转换为utf-8格式输出printstr #正常显示中文

安全的方法:

s.decode('gbk','ignore').encode('utf-8′) #以gbk编码读取(当然是读取gbk编码格式的文字了)并忽略错误的编码,转换成utf-8编码输出

因为decode的函数原型是decode([encoding], [errors='strict']),可以用第二个参数控制错误处理的策略,默认的参数就是strict,代表遇到非法字符时抛出异常;

如果设置为ignore,则会忽略非法字符;

如果设置为replace,则会用?取代非法字符;

如果设置为xmlcharrefreplace,则使用XML的字符引用。

python 编码gbk_python 处理中文文件时的编码问题,尤其是utf-8和gbk相关推荐

  1. python能打开的txt文件编码_Python读写txt文件时的编码问题

    这个问题来自于一个小伙伴,他在处理中文数据时需要先把里面的文本过滤然后分词,因为里面有许多符号,不仅是中文标点符号,还有✳,emoji等奇怪的符号. 正常情况下,中文的str经过encode('utf ...

  2. Python随笔:进行读写文件时,在字符串前加 r,u,b,f 的含义

    Python随笔:进行读写文件时,在字符串前加 r,u,b,f 的含义 文章目录 Python随笔:进行读写文件时,在字符串前加 r,u,b,f 的含义 1.r'xxx' 的含义 2.u'xxx' 的 ...

  3. eclipse中新建JSP文件时的编码设置

    eclipse中新建JSP文件时的编码设置: 1:window -->Preferences --> General -->Content Types -->Text 修改里里 ...

  4. idea查看java文件编码_Intellij Idea编译项目下的.java文件时的编码问题

    由<编译.java文件时的编码问题>可知,在编译.java文件的时候,需要正确指定一个编码方案,该编码方案用于解码.java文件的字节流. 那么在使用Intellij Idea编译(假定使 ...

  5. python csv文件复制时的编码问题_使用python读取CSV文件时的编码问题

    尝试使用python读取CSV文件时遇到障碍. 更新:如果只想跳过字符或错误,可以打开文件,如下所示: with open(os.path.join(directory, file), 'r', en ...

  6. Python读写txt文件时的编码问题

    转载自: https://www.cnblogs.com/baijing1/p/9885891.html (授权问题请直接私信) 这个问题来自于一个小伙伴,他在处理中文数据时需要先把里面的文本过滤然后 ...

  7. Python全栈工程师(文件操作、编码)

    ParisGabriel 每天坚持手写  一天一篇  决定坚持几年 为了梦想为了信仰   Python人工智能从入门到精通 最近简直要死了 发烧感冒 喉咙痛..... 如何长期保存计算机中数据: 需要 ...

  8. Qt字符编码,创建中文文件

    1.代码文件本身编码: 2.Qt中用于控制读入和写出文件系统时的字符编码由QTextCodec::setCodecForLocale()所决定.一般不用设置,Qt跟系统交互时会根据系统的Locale来 ...

  9. php指定编码创建,MYSQL创建数据库时指定编码

    mysql 创建 数据库时指定编码很重要,很多开发者都使用了默认编码,但是我使用的经验来看,制定数据库的编码可以很大程度上避免倒入导出带来的乱码问题. 我们遵循的标准是,数据库,表,字段和页面或文本的 ...

  10. python读取有中文文件时的报错处理

    如果直接用open(file,'r')会报错 UnicodeDecodeError: 'gbk' codec can't decode byte 0xac in position 194: illeg ...

最新文章

  1. SpringMVC应用和RESTful应用的区别
  2. 圆柱体积怎么算立方公式_【六年级数学微课】巧算圆锥的体积
  3. js文件夹上传到服务器,js 上传img到服务器
  4. qt程序中使用 环境变量_目的:使用CUDA环境变量CUDA_VISIBLE_DEVICES来限定CUDA程序所能使用的GPU...
  5. L3-003. 社交集群-PAT团体程序设计天梯赛GPLT(并查集)
  6. logback log4j log4j2 性能实测
  7. 2022-2028年中国海上石油勘探行业市场研究及前瞻分析报告
  8. 从武汉远程医疗方案看,5G战“疫”是噱头还是福音?
  9. Android Bugs——Error:java.lang.RuntimeException: Some file crunching failed, see logs for details
  10. 一起谈.NET技术,走向ASP.NET架构设计——第二章:设计/ 测试/代码
  11. 论文绘图与合成图片过程中常见问题
  12. 在VMWare虚拟机上安装Kali linux系统的完整过程(图文)
  13. android 白色圆点,Android通知图标是一个白色圆圈
  14. 对称矩阵标准化以后不是对称矩阵的原因和解决办法
  15. 苹果不显示订阅服务器,苹果xr找不到订阅管理?苹果xr找不到订阅管理解决办法...
  16. 银行卡号每输四位加空格,及银行卡的识别(此银行卡号是那个银行)
  17. initramfs模式介绍及解决方法
  18. 刚参加完阿里面试:一面+二面+三面+HR四面,我的复盘经验总结!
  19. 音频传输之Jitter Buffer设计与实现
  20. ZZULIOJ 2348: 小明的第一份实习任务(前缀和)

热门文章

  1. 李飞飞计算机视觉笔记(1)--数据驱动的图像分类方式:K最近邻与线性分类器
  2. 策略盈亏分布统计——从零到实盘11
  3. MapReduce的Reducer类
  4. 无限法则裸连本地服务器错误,无限法则D3Dinitfailed报错问题解决办法
  5. win7计算机盘共享,win7电脑如何共享文件夹 win7电脑共享文件夹操作方法
  6. Java实现 LeetCode 787 K 站中转内最便宜的航班(两种DP)
  7. 油耳戴什么款式耳机好?骨传导耳机最合适
  8. PHP后端入门(一):实现前后端交互
  9. 抽奖助手自动参与抽奖
  10. android自动修音,唱吧自动一键修音软件-唱吧自动修音app8.8.6 安卓手机版下载_东坡手机下载...