python编码问题、乱码问题

简介: python编码问题、乱码问题

插入中文内容到本地MySQL数据库乱码问题的解决


首先我查到一条插入数据库的sql语句,如下:

title = '中文'
sql = '''INSERT INTO articles(name, url) VALUES ('%s', '%s')''', (title, url)

很悲催的是我失败了,通过打印sql,发现title并不是我要的‘中文’


结果如下:

("INSERT INTO articles(name,url) VALUES ('%s', '%s')", ('\xe4\xb8\xad\xe6\x96\x8
7', u'/cn/news/2015/12/mobile-fragmentation-issues'))

接下来我就不停的decode和encode。。。。


当然在解决编码问题之前,最原则的就是要搞清你的内容到底是什么编码方式,然后再进行上述操作,今天主要讲的是我的一个很巧妙的解决,请看:

sql = '''INSERT INTO articles(name, url) VALUES ('%s', '%s')''' %  (title, url)


程序中其他编码问题


第一步:确定你的数据是什么类型,有两种方式可以采用——1.type(data) / 2.isinstance(data, unicode)也就是说这种方式只能判断你的data是不是Unicode


python的内部是使用unicode来处理的,当python要做编码转换的时候,应该先转化为Unicode,再转化成目的编码,转换过程是这样的:

       原有编码 -> 内部编码 -> 目的编码


第二步:在python编码前两行加入下面的编码信息

#-*- coding: utf8 -*-

此时便可正常打印输出中文字符串


但是仅仅这样并不足够,尤其在你做爬虫程序,从页面爬了很多中文字符进来后,打印的不是乱码就是\xx这样的东西,那如果是python2,我们只需要在import模块时,加上如下的代码,python3中就不需要了。

import sys
reload(sys) 
sys.setdefaultencoding('utf8')

此外如果是从文件读取,尽量不要使用file.open打开文件,而是采用codecs.open,这样可以指定解码的类型


input文件(gbk, utf-8...)   ----decode----->   unicode  -------encode------> output文件(gbk, utf-8...)

很多文本挖掘的package是在unicode上边做事的,比如nltk. 所以开始读入文件后要decode为unicode格式,可以通过下边两步:

f=codecs.open(XXX, encoding='utf-8')
content=f.read()
相关文章
|
6月前
|
存储 Python
Python文件编码概念详解
Python文件编码概念详解
59 1
|
2月前
|
Python
python第三方库-字符串编码工具 chardet 的使用(python3经典编程案例)
这篇文章介绍了如何使用Python的第三方库chardet来检测字符串的编码类型,包括ASCII、GBK、UTF-8和日文编码的检测示例。
125 6
|
2月前
|
Python
Python 中如何指定 open 编码为ANSI
Python 中如何指定 open 编码为ANSI
|
3月前
|
数据采集 开发工具 Python
海康威视工业相机SDK+Python+PyQt开发数据采集系统(支持软件触发、编码器触发)
该系统基于海康威视工业相机SDK,使用Python与PyQt开发,支持Gige与USB相机设备的搜索及双相机同时显示。系统提供软件触发与编码器触发模式,并可在数据采集过程中实时保存图像。此外,用户可以调节曝光时间和增益,并进行信息输入,这些信息将被保存至配置文件以便下次自动加载。参数调节与实时预览等功能进一步增强了系统的实用性。
196 1
|
3月前
|
开发者 Python
Python编码风格
Python编码风格
25 1
|
3月前
|
JSON 数据库 开发者
FastAPI入门指南:Python开发者必看——从零基础到精通,掌握FastAPI的全栈式Web开发流程,解锁高效编码的秘密!
【8月更文挑战第31天】在当今的Web开发领域,FastAPI迅速成为开发者的热门选择。本指南带领Python开发者快速入门FastAPI,涵盖环境搭建、基础代码、路径参数、请求体处理、数据库操作及异常处理等内容,帮助你轻松掌握这一高效Web框架。通过实践操作,你将学会构建高性能的Web应用,并为后续复杂项目打下坚实基础。
107 0
|
4月前
|
Python
11个提升Python列表编码效率的高级技巧
Python中关于列表的一些很酷的技巧
54 1
|
4月前
|
存储 缓存 Python
python中小数据池和编码
python中小数据池和编码
55 3
|
4月前
|
缓存 Java Unix
python中内存管理等10个编码习惯
【7月更文挑战第3天】本文涵盖了Python编程中的变量管理、模块导入、命令行参数、内存管理和面向对象设计的10个关键概念。
47 0
python中内存管理等10个编码习惯
|
5月前
|
自然语言处理 Python
Python编码问题
Python编码问题是指在处理文本时,由于编码不一致导致程序不能正确处理文本的问题。在Python中,编码问题主要有两种情况:文件编码问题和字符串编码问题。
66 7