- 浏览: 2138562 次
- 性别:
- 来自: 合肥
文章分类
- 全部博客 (401)
- Agile (16)
- Apache Commons (3)
- Architecture (8)
- DB.MongoDB (5)
- DB.Mysql (3)
- DB.Oracle (34)
- DirectoryService (1)
- DotNet (1)
- English (3)
- Groovy (0)
- Html (28)
- Java (67)
- Java.Aixs (7)
- Java.Cache (2)
- Java.jPBM (1)
- Java.Resin (6)
- Java.Spring (4)
- Java.Struts2 (5)
- Java.Tomcat (16)
- Javascript (45)
- Javascript.Google Map (2)
- Javascript.Jquery (8)
- Life (15)
- Maven&Ant (4)
- Network (5)
- OS.Linux (45)
- OS.Windows (10)
- OS.Windows.Office (1)
- PlayFramework (15)
- Python (28)
- Reading notes (11)
- Security (13)
- Server.Apache (3)
- Server.Nginx (7)
- Test (6)
- Tool (15)
- Work.Solution (15)
- Other (20)
- SSO&CAS&Identity (13)
最新评论
-
hutuxiansheng123:
防火墙、Iptables、netfilter/iptables、NAT 概述 -
dacoolbaby:
非常棒的正则表达式,非常适用。万分感谢。
用python分析nginx的access日志 -
loot00:
您好! 我也遇到了相同的错误信息。我是用f_link_lob ...
LOB variable no longer valid after subsequent fetch -
feihangchen:
@OnApplicationStop public clas ...
Play framework 1.2.3 Jobs定时任务、异步任务、引导任务、触发任务、关闭任务 -
洞渊龙王:
谢谢了
www.w3.org被qiang导致logback报错:Connect reset
#! /usr/bin/env python
# -*- coding: utf-8 -*-
#@author zcwang3@gmail.com
#@version 2010-09-07 11:22
# 原始字符串
rstr = r " 编码 "
# 普通字符串
str = " 编码 "
#Unicode 字符串
ustr = u " 编码 "
# 用 utf-8 编码把 str 转换为 unicode
utf8ToUnicodeStr=str.decode( 'utf-8' )
粘贴到 CMD 启动的 PYTHON 命令行中的运行结果: UnicodeDecodeError( 命令行中默认使用的是 windows 系统的 gbk 编码, str 就是使用 gbk 编码的字符串,使用 utf-8 解码时部分字节值超出 utf-8 范围,系统错误 )
# 用 gbk 编码把 str 转换为 unicode
gbkToUnicodeStr=str.decode( 'gbk' )
rstr
str
ustr
utf8ToUnicodeStr
gbkToUnicodeStr
print len(rstr)
在 pydev 中的运行结果: 6 (显示:文件头部声明的 utf-8 编码起作用,并且 1 个汉字占 3 位)
在 IDLE 中的运行结果: 6 (显示:文件头部声明的 utf-8 编码起作用,并且 1 个汉字占 3 位)
粘贴到 CMD 启动的 PYTHON 命令行中的运行结果: 4 (显示:命令行中默认编码 gbk , 1 个汉字占 3 位 )
print len(str)
在 pydev 中的运行结果: 6
在 IDLE 中的运行结果: 6
粘贴到 CMD 启动的 PYTHON 命令行中的运行结果: 4
原始字符串和普通字符串有相同的结果
print len(ustr)
在 pydev 中的运行结果: 2
在 IDLE 中的运行结果: 2
粘贴到 CMD 启动的 PYTHON 命令行中的运行结果: 2
通过使用 u 来标志的 unicode 字符在 3 种情况下结果一致, 1 个汉字占 2 位
print len(utf8ToUnicodeStr)
在 pydev 中的运行结果: 2 (通过正确的编码,转换成相应的 unicode 字符串)
在 IDLE 中的运行结果: 2 (通过正确的编码,转换成相应的 unicode 字符串)
粘贴到 CMD 启动的 PYTHON 命令行中的运行结果:变量未定义
print len(gbkToUnicodeStr)
在 pydev 中的运行结果: 3 ( utf-8 声明的字符串,用 gbk 解码,结果是乱码)
在 IDLE 中的运行结果: 3
粘贴到 CMD 启动的 PYTHON 命令行中的运行结果: 2
print rstr
print str
print ustr
print utf8ToUnicodeStr
print gbkToUnicodeStr
在 IDLE 中的运行结果和通过 python + py 文件的运行结果完全一致!
Pydev 中模块的默认编码在文件头声明(没有声明就是 ascii ),控制台显示的默认编码和 文件头声明的编码 一致
IDLE 中调用时模块的默认编码在文件头声明(没有声明就是 ascii ),控制台显示的默认编码和 操作系统默认编码一致(如中文 windows 下的 gbk ) 一致
粘贴到 CMD 启动的 PYTHON 命令行中,直接声明的字符串的默认编码和命令行中显示的默认编码都是 操作系统默认编码一致(如中文 windows 下的 gbk )
结论:
1, 乱码,编码错误出现的原因:字符串 str 声明时编码为 a ,而输出(控制台显示或者写入文件,数据库等)时由于环境的不同,默认编码也不同。在不同的环境下, python 会根据各自的默认编码去解码字符串 a ,因此 出现乱码( str 对应的 a 编码的值正好都在 b 编码的取值范围内) 或者 编码错误(譬如: a 编码中有值 10000 ( 2 进制的形式),但是 b 编码的取值范围不包括 10000 ,就会出现转换错误)
2, 如果变量直接声明为 Unicode 字符,那么在不同输出环境时, python 都能正常地转换为相应的字符串
3, 通过 u 符号声明的 Unicode 字符串在上述 3 种情况下都不出现乱码, 推荐使用
4, 原始字符串和普通字符串声明的字符串的默认编码跟系统环境相关, python 命令行中默认的是操作系统的编码如 windows 的 gbk , pydev 或者 idle 中,字符串的默认编码跟文件头部声明的编码一致(如果文件头部没有声明,那么默认的是 ascii 编码)
发表评论
-
python sftp&ftp&ssh2
2012-03-06 11:29 10777ftp使用内置模块from ftplib import FTP ... -
python 子进程Subprocess & windows cmd当前目录和python当前目录的区分
2012-03-05 10:28 10917maven命令执行的时候,需要先到project目录,然后再执 ... -
用python分析nginx的access日志
2011-04-13 13:52 14995项目正式发布后,有需求要分析下nginx的access日志内容 ... -
(转)python 函数参数的传递(参数带星号的说明)
2011-03-18 15:09 1374转自 andylin02的博客 python中函数参数的传递 ... -
ConfigParser读取记事本修改后的配置文件出错问题解决
2010-12-23 10:42 13002使用ConfigParser来读取系统配置文件,当把py2ex ... -
把图片列表合成一个GIF动画图片
2010-12-14 10:04 2514import os from PIL import Im ... -
LOB variable no longer valid after subsequent fetch
2010-12-01 10:50 5485cx_oracle读取oracle wm_concate函数操 ... -
pydev打包后的程序运行报【没有找到 MSVCP71.dll】的错误
2010-11-19 11:44 1724今天把用pydev打包后的程序放到一台新的Windows 20 ... -
客户端机器TCP端口被占满导致mysql报Can't connect to MySQL server on 'computername' (10048)
2010-11-17 16:22 5548用python程序读取csv数据,然后通过MySQLdb模块插 ... -
Python WindowsError
2010-10-28 10:02 11092WindowsError: [Error 2] The sy ... -
PIL使用过程中的异常处理
2010-10-22 14:45 19469IOError: cannot identify image ... -
用python给文件夹下所有图片进行缩放处理
2010-10-20 17:17 6121#! /usr/bin/env python # -* ... -
http代理测速程序
2010-10-18 16:45 6345从网上找到很多代理地址,用来访问目标网站,访问目标网站速度不一 ... -
python连接oracle
2010-09-29 13:39 8209windows下使用python连接oracle(10.2.0 ... -
python处理csv数据
2010-09-26 15:33 37225import csv #从文件读取 reader ... -
python文件夹复制
2010-09-25 14:58 5286需求:复制1个10多个G的文件夹(另外机器共享过来的文件夹,里 ... -
windows下python包chardet安装说明&python第三方包安装卸载
2010-09-19 10:59 2606BeautifulSoup使用过程中需要使用到chardet来 ... -
用py2exe安装python windows服务
2010-09-17 16:29 5856使用模块:pywin32,py2exe #运行安装程序 ... -
Python generator和yield
2010-09-11 20:55 3675generator产生器:a Python generator ... -
python gc回收和性能优化
2010-09-11 20:31 2893psyco 脚本的执行效率多少有点差强人意,虽然优化 ...
相关推荐
python.pydevpython.pydevpython.pydevpython.pydevpython.pydevpython.pydev eclipse启动时须 带-clean 须设置Python的环境变量
org[1].python.pydev.feature-1.4.6.2788.zip org[1].python.pydev.feature-1.4.6.2788.zip org[1].python.pydev.feature-1.4.6.2788.zip 正在使用。。。。
org.python.pydev.feature-1_3_24.zip
基于windows安装python的简单描述,以及在pydev安装的时候总是遇到如下问题的解决办法: An error occurred while collecting items to be installed session context was:(profile=C__Users_Think_eclipse_java-...
python-pydev-django
python for eclipse 插件,PyDev jdk6+eclipse+python3.6+pydev2.8.2
eclipse python插件 pydev6.5, 加压后放入eclipse目录的dropins文件夹下,重启eclipse即可
eclipse中Python插件pyDev7.2.1
eclipse中Python插件pyDev6.5.0
最近学习python 把我用到的python 相关 插件分享一下
eclipse配置python开发环境,离线安装所需的Pydev插件
pydev in eclipse for python,解压缩放到相应的文件夹即可,重启eclipse,配置python路径,就可以建立工程模块了。联想、debug、等跟java无异
python27 pydev py2exe 32位统一资源
myeclipse安装python插件pydev说明.docx
myeclipse安装python插件pydev说明.pdf
python的window安装包 pydev压缩包 eclipse中如何安装pydev 1.首先找到eclipse根目录(D:\software\eclipse) 2.创建links,myplugins文件夹(D:\software\eclipse\links,D:\software\eclipse\myplugins) 3.进入...
一Python的开发环境IDLE 和 Pydev 这里使用Pydev 和 eclipse进行开发,开发环境搭建需要如下步骤 1.下载jdk 下载eclipse 下载python 2.安装jdk 配置环境变量 path classpath javahome a.打开我的电脑--属性--高级--...
org.python.pydev.pydev_lsp_0.1.5.201805051749.jar
myeclipse安装python插件pydev说明[归纳].pdf
eclipse搭建python3.x开发环境的必要插件,比起eclipse在线安装更加方便。