python2.7中,str和unicode是不同的类型,给非ASCII编码的文字和符号的使用造成了极大的困难

str是字符序列

unicode是字节序列

遇到类似于 如下问题的解决方案

UnicodeDecodeError: 'ascii' codec can't decode byte 0xe8 in position 0: ordinal not in range(128)

0.必须的编码声明

想要在代码中涉及非ASCII编码的处理,必须在程序的最前面指定

#coding:utf-8

来指示python文件本身的编码为utf-8(或者其他编码)

1.通用解决方案

在主函数中加入

import sys

reload(sys)

sys.setdefaultencoding('utf-8')

2.写入文件时不能编码的解决方案

由于python2中的builtin的open函数不能指定字符集,所以,str格式的字符串必须先进行编码才能写入文件,编码可根据需要指定

3.数据库中乱码的解决方案

首先要将数据库本身的编码调整为UTF-8

使用

SHOW VARIABLES LIKE "%char%";

查看数据库本身的编码

在连接数据库的时候就指定好,使用MysqlDb模块的时候,使用connet函数需指定charset='utf-8'

使用其他ORM或者数据库框架的时候也应在配置或者连接的函数中指定好字符集为UTF-8

python通用编码_python2.7的编码的常见解决方案.md相关推荐

  1. 字符编码、常见字符集解析(ASCII、Unicode、UTF-8、GB2312等)

    文章目录 字符编码 ASCII Unicode UTF-8 GB2312 C++中的字符类型 python中的字符编码 小结 各种字符编码的转换是个非常容易混淆的问题,这篇文章旨在梳理字符编码.常见字 ...

  2. python open函数encoding_关于python内open函数encoding编码问题

    原博文 2019-07-16 03:03 − 在学python的open函数时,我发现在pycharm里新建一个file_name.txt文本文件,输入中文保存,再用open(file_name,'r ...

  3. python字符串编码及乱码解决方案

    http://blog.csdn.net/pipisorry/article/details/44136297 字符编码详解 [字符编码ASCII,Unicode和UTF-8] 主要非英文字符集的编码 ...

  4. python阶乘的代码_python编码阶乘

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 需求:阶乘:也是数学里的一种术语: 阶乘指从1乘以2乘以3乘以4一直乘到所要求的 ...

  5. Python 对图像进行base64编码及解码读取为numpy、opencv、matplot需要的格式

    Python 对图像进行base64编码及解码读取为numpy.opencv.matplot需要的格式 1. 效果图 2. 源码 参考 这篇博客将介绍Python如何对图像进行base64编解码及读取 ...

  6. 【廖雪峰python入门笔记】Unicode编码_UnicodeDecodeError处理

    1.Unicode编码的由来 字符串还有一个编码问题. 计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理.最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以, ...

  7. Python运行的17个时新手常见错误小结

    Python运行的17个时新手常见错误小结 1 发布时间:『 2017-11-04 11:20 』     帖子类别:『人工智能』  阅读次数:8803 (本文『Python运行的17个时新手常见错误 ...

  8. python2 python3编码_Python2和Python3编码问题-从底层出发

    首先需要强调---无论是python2还是python3都可以理解成是Unicode编码,但是在电脑硬盘上存储是按照不同的映射关系的. Python的encode和decode 首先明白一件事情,之前 ...

  9. python numpy数组和one-hot编码相互转换

    a=[0,0,1,0,1,0,1]result=[] for i, x in enumerate(a):if x==1:result.append(i)print(result) python num ...

最新文章

  1. Docker创建Docker-Registry-私服
  2. Box2D教程3-刚体绑定外观
  3. mysql 转换编码方式
  4. 在linux程序里面,知道一个函数地址,改函数是属于某个动态库的,怎么样得到这个动态库的全【转】...
  5. 前端面试题汇总(jQuery)
  6. python输出变量地址_Python——变量
  7. Flask开发系列之初体验
  8. 百度网盘不限速下载软件 Pan Download下载不了,创建文件失败的解决办法
  9. LICEcap 一款小巧的GIF屏幕录制软件
  10. 如何维持手机电池寿命_关于如何延长智能手机电池寿命的一些提示
  11. 解决关于Windows10连接共享出现“因为文件共享不安全,所以你不能连接到文件共享。此共享需要过时的SMB1协议”的问题
  12. 非空子集的生成(二进制法)
  13. Quora商业模式发展的七种可能性
  14. 什么是Restful风格
  15. 荔枝派Zero(全志V3S)开启alsa,测试codec
  16. Unity3D代码混淆
  17. 登录过期--localStorage加sessionStorage实现7天登录过期
  18. 基于「ClamAv」通过python进行病毒检测(2)-- pyClamd控制clamd详解
  19. P6770 [USACO05MAR]Checking an Alibi 不在场的证明(spfa)
  20. phantomjs html2Image.js 网页转换图片

热门文章

  1. mojing SDK根据坐标进行移动
  2. 自动化测试元素查找利器firepath介绍
  3. ModelState对象
  4. 总结:request.setAttribute()、session.setAttribute()和request.getParameter()的联系与区别
  5. Oracle exp/imp导出导入命令及数据库备份
  6. 小菜编程成长记(一 面试受挫——代码无错就是好?)
  7. CentOS下GitLab的安装部署
  8. Apache常见配置及问题
  9. 超实用的脚本——检查oracle数据库是否存在潜伏的比特币勒索病毒
  10. 时序数据库timescaleDB安装