Python中国的学习方式处理问题
a = '你们' 至 str 物
a = u'你们' 至 unicode 物
1.
>>> print 'u' + '你们'
>>> u欢
输出乱码
2.
>>> print 'u' + u'你'
>>> u你
正常
3.
>>> print 'u你'
>>> u浣
输出乱码
4.
>>> print 'u你' + 'u'
>>> u浣爑
输出乱码
5.
>>> print u'u你' + 'u'
>>> u你u
正常
6.
>>> print u'u你' + '你'
出现错误 UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 0: ordinal not in range(128)
分析:'你'在内存中 为 0xe4。而python默认的编码方案是ascii,ascii无法识别0xe4
7.
>>> print u'u你' + u'你'
>>> u你你
正常
8.
>>> print 'u你' + u'你'
出现错误 UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 1: ordinal not in range(128)
9.
>>> print 'u你'.decode('utf-8') + u'你'
>>> u你你
正常
10.
而在处理由系统採集的含有中文的路径时,使用string.decode('utf-8')就不一定行了,由于中文简体的windows系统默认编码为gb2312,繁体中文版会採用Big5码
实验步骤例如以下:
file_from = sys.argv[1] 为由系统採集的包括中文的路径
file_to = file_from[:file_from.rfind('\\')+1].decode('utf-8') + u'你_' + file_from[file_from.rfind('\\')+1:].decode('utf-8')
print file_to
将出现错误:UnicodeDecodeError: 'utf8' codec can't decode byte 0xbb in position 24: invalid start byte
应该使用:decode('gb2312')
file_to = file_from[:file_from.rfind('\\')+1].decode('gb2312') + u'你_' + file_from[file_from.rfind('\\')+1:].decode('gb2312')
print file_to 正常
11.
而假设file_from是由你自己写入的包括中文的路径,如file_from = ‘c:\你.txt’
那么就应该用decode('utf-8')
能够參考上面的第7点和第9点
不足及错误之处,请批评指正!!谢谢!
。
參考文章:
Why you benefit from using UTF-8 Unicode everywhere in your web applications
版权声明:本文博主原创文章,博客,未经同意不得转载。
Python中国的学习方式处理问题的更多相关文章
- Python 中国象棋源码 V1
Pygame 做的中国象棋,一直以来喜欢下象棋,写了 python 就拿来做一个试试,水平有限,电脑走法水平低,需要在下次版本中更新电脑走法,希望源码能帮助大家更好的学习 python.总共分为四个文 ...
- Python 中国大学排名定向爬虫
代码来自于中国大学Mooc北京理工大学Pythont教学团队:https://www.icourse163.org/learn/BIT-1001870001#/learn/content?type=d ...
- PyConChina2016 北京站 献给Python开发者
开源编程语言Python近年来在互联网.游戏.云计算.大数据.运维.企业软件等领域有非常多的应用.今天小编就为大家推荐一场Python开发者的盛会:PyConChina2016(北京)! PyCon大 ...
- #017 python实验课第五周
总结写在最前面: 1.语法还是不会...(每周强制留的C语言一百题都没空写PS.团委诶....)都是现查现用(莫凡Python这个网站特别好用知识点一个视频就一分钟B站的播放器没广告,用啥学啥,还配有 ...
- python从零开始 -- 第0篇之Hello World!
为什么选择python以及版本选择 学习资料 学习方法和路径 1. 为什么选择python以及版本选择: Python 好玩,强大,更多关于关于为什么选择Python,在 编程小白的第一本 Pyt ...
- Python 夺大满贯!三大编程语言榜即将全部“失守”!
有互联网创业者说: 2019年可能会是过去十年里最差的一年 但却是未来十年里最好的一年 真的是这样吗? “每月工资1w,如何赚到200w?” 同样一个问题,问不同的人会得到不同的答案. 有一类人,开始 ...
- Java“被迫”退出争霸,Python继续霸占首位!老牌程序员:我不服
2019年转眼已经接近尾声,如果盘点下2019年最火的语言,除了Python还能有谁?你心中的王者语言又是谁? 这一年Python风光无限 这一年JAVA走向右边 这一年,我们都很感慨,你呢? 关于P ...
- Python笔记_第三篇_面向对象_4.单下划线和双下划线
说道这里我们需要稍微暂停一下.前面我们说到了类是作为一个对象存放容器.这个容器里面有属性和方法.最好的理解类的方式就是把类想想成一个容器. 然后构造了一个析构函数和构造函数,然后又对object和se ...
- Python语言系列-02-基础数据类型
格式化输出 #!/usr/bin/env python3 # author:Alnk(李成果) # 百分号% 格式化输出 name = input('姓名:') age = input('年龄:') ...
随机推荐
- Jquery中toggleClass的两种用法
css样式: <style type="text/css"> .bgc{ background-color:#F00; color: #FFF} </style& ...
- poj2761(treap入门)
给n个数,然后m个询问,询问任意区间的第k小的数,特别的,任意两个区间不存在包含关系, 也就是说,将所有的询问按L排序之后, 对于i<j , Li < Lj 且 Ri < Rj ...
- 【Unity Shaders】使用Unity Render Textures实现画面特效——画面特效中的亮度、饱和度和对照度
本系列主要參考<Unity Shaders and Effects Cookbook>一书(感谢原书作者),同一时候会加上一点个人理解或拓展. 这里是本书全部的插图. 这里是本书所需的代码 ...
- java.lang.OutOfMemoryError: Java heap space错误和方法(集、转)
错误的方式来解决溢出下面的堆空间是从网上找: java.lang.OutOfMemoryError: Java heap space ================================= ...
- swift-辞典NSDictionary定义,变化的关键,删/加入关键
// Playground - noun: a place where people can play import UIKit //--------------------------------- ...
- [Sqlite]-->Java采用jdbc联系Sqlite各种特定的工艺数据库的数据操作
引: 1, Sqlite在Windows.Linux 和 Mac OS X 上的安装过程 2.嵌入式数据库的安装.建库.建表.更新表结构以及数据导入导出等等具体过程记录 3,嵌 ...
- ubuntu10.10和windows双系统启动顺序的修改
我想大部分童鞋装ubuntu的时候,硬盘上的windows肯定还是保留着的,启动电 脑时可以选择,想进windows就进windows,想进ubuntu就进ubuntu.但装完ubuntu后,它默认启 ...
- 配置Tomcat的日志系统
成功配置tomcat的log4j日志系统,格式:HTML+每天以yyyy-mm-dd.log命名的日志文件 一.引言: 实习单位让用log4j配置webapp的日志系统,要求产生的日志文件是html格 ...
- 数据结构读书笔记(二)(C语言)
(一)循环链表 存储类型 typedef struct LNode { ElemType data; struct LNode *next; }; typedef struct LNode *Link ...
- Jenkins(转)
1 修改jenkins的根目录,默认地在C:\Documents and Settings\AAA\.jenkins . .jenkins ├─jobs│ └─JavaHelloWorld│ ...