scrapy plsql导出数据乱码的数据文件为什么是乱码

bugzilla导出的csv文件乱码的问题
CSV英文全称为Comma Separated Values,简称CSV,是一种纯文本格式,用来存储数据。
在CSV中,数据的字段由逗号分开,程序通过读取文件重新创建正确的字段,方法是每次遇到逗号时开始新一段数据。
bugzilla导出的csv文件乱码的原因:
从bugzilla中导出的CSV文件为UTF-8格式,但是由于Microsoft Office Excel不能自动识别并转换文件格式,为此打开的文件显示乱码。
用记事本或者RedOffice打开CSV文件时,都需要先转换一下编码格式,变为Unicode格式,才能正常阅读。
记事本转换时如果选择ANSI或者UTF-8仍旧出现乱码是因为cvs文件里的中文或者其他字符的占位符不同,不符合ANSI或者UTF-8编码格式,故出现乱码。
虽然UTF-8也是Unicode的一种,但是占位符的多少有所差异,我们这里所说的Unicode其实是UTF-16.
CSV文件从bugzilla导出后直接打开会发生乱码问题(下图为一个.csv文件打开后乱码的截图)
解决乱码问题,需要格式转换后,才能正常显示,以下是两种可以正常的方法:
1. 用RedOffice打开:
打开一个Excel表,点击“打开”
?§?è 选择要打开的.csv文件,点打开
?§?è 进入导入文字界面:字符集选择Unicode(UTF-8);分隔符选择逗号 ,点确定
打开文件无乱码
2. 用文本打开:
打开记事本,点击打开
?§?è 文件类型为“所有文件(*.*)”,选择要打开的.csv文件,编码为UTF-8,点打开
?§?è选择另存为
?§?è另存为的编码为Unicode,点击保存
打开文件无乱码
另存为的格式一定要是Unicode,如果选择ANSI格式,则仍旧会有乱码
另存为ANSI格式后,仍旧有部分内容为乱码
Copyright (C) , All Rights Reserved.
版权所有 闽ICP备号
processed in 0.055 (s). 13 q(s)Scrapy精华教程(四)——中文输出与中文保存
提取网页中中文并输出或者是保存时经常会出现一个问题是显示的是中文对应的unicode编码而非中文本身,这里讲述解决这种问题的方法。
一. 针对交互输出。
如以下代码:
title = site.xpath('a/text()').extract()
link = site.xpath('a/@href').extract()
desc = site.xpath('a/@title').extract()
print title
此时title的输出可能是类似于如下:&
\xe4\xbd\xbf\xe7\x94\xa8
这是title对应中文的unicode格式。
将其转换为utf-8在输出即可:
title = site.xpath('a/text()').extract()
link = site.xpath('a/@href').extract()
desc = site.xpath('a/@title').extract()
print title
for t in title:
print t.encode('utf-8')
这时两次输出的前一次为unicode码,而后一次为中文。
encode()只针对str数据结构,如果不是,可以先转换为str。上面由于得到的title为list类型,所以转换如上。
二. 针对存储。
关于存储,可查看在教程(二)(http://blog.csdn.net/u/article/details/)中在w3school和pipelines中使用的方式达到保存中文的效果。2011年12月 总版技术专家分月排行榜第三2011年9月 总版技术专家分月排行榜第三
2011年6月 MS-SQL Server大版内专家分月排行榜第一
2011年 总版技术专家分年内排行榜第四2010年 总版技术专家分年内排行榜第九2009年 总版技术专家分年内排行榜第八
2011年10月 总版技术专家分月排行榜第一
2011年8月 总版技术专家分月排行榜第二2011年7月 总版技术专家分月排行榜第二
2012年7月 荣获微软MVP称号
2013年4月 MS-SQL Server大版内专家分月排行榜第二
2012年5月 MS-SQL Server大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。解决javapdf导出文件,中文乱码和数据错位的问题 -
- ITeye技术网站
博客分类:
首先说中文乱码问题,javapdf内部使用的是ISO-8859-1编码,而通常我们的数据库编码是UTF-8或者GBK,如果在javapdf写入之前不进行转码,会出现导出的文件中文乱码,所以在遍历每个字段的数据时要加上该条代码
if(object instanceof String){
object = new String(((String)object).getBytes("GBK"),"ISO-8859-1");
这里的GBK是数据所在数据库的编码,根据自己的情况变化。
再说说数据错位,因为pdf支持的最大字段长度只有255,所以在你传入的字段长度大于255时,javapdf会跟你作一个%256的运算,来保证字段长度小于256,而数据错位通常是由于这个运算操作引起的,所以我们只能在代码端控制传入的字段数据长度,进行适当截取,保证你转入的字段长度不能大于255的同时,保证你的字段数据也不会大于255,中文要除于2
浏览: 55288 次
100条记录20秒,,这也太慢了,大数据正常200条才0.00 ...
多谢楼主分享,正好在项目中用上。三个sheet,两个8+W,一 ...
多谢楼主,问题完美解决。总条数50万,刷新阀值1000,毫无压 ...
有导出时间字段的代码吗
我试了好多都没用
zhoucong 写道写大量数据的方法不对,表头写进去了,数据 ...}

我要回帖

更多关于 mysql导出数据库乱码 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信