python处理中文字符串_处理python字符串中的中文字符

# -*- coding:utf-8 -*-

import sys,os

txta = open('a.txt','r')

str = ''

for line in txta:

str += line.strip().decode('utf-8')

txta.close()

for word in str:

print word.encode('utf-8')

直接输出,是会乱码的,得先解码,再编码。

参考网址:http://blog.csdn.net/devil_2009/article/details/39526713

首先要明白的是,python里面默认的字符串都是ASCII编码,是string类型,ASCII编码处理中文字符是会出问题的。python的内部编码格式是unicode,在字符串前加‘u’前缀也可直接声明unicode字符串,如 u'hello'就是unicode类型。

如果处理的字符串中出现非ascii码表示的字符,要想不出错,就得转成unicode编码了。具体的方法有:

decode(),将其他边编码的字符串转换成unicode编码,如str1.decode('gb2312'),表示将gb2312编码的字符串str1转换成unicode编码;

encode(),将unicode编码转换成其他编码的字符串,如str2.encode('gb2312'),表示将unicode编码的字符串str2转换成gb2312编码;

unicode(),同decode(),将其他编码的字符串转换成unicode编码,如unicode(str3, 'gb2312'),表示将gb2312编码的字符串str3转换成unicode编码。

转码的时候一定要先搞明白字符串str是什么编码,然后decode成unicode,最后再encode成其他编码。

另外,对一个unicode编码的字符串在进行解码会出错,所以在编码未知的情况下要先判断其编码方式是否为unicode,可以用isinstance(str, unicode)。

不仅是中文,以后处理含非ascii编码的字符串时,都可以遵循以下步骤:

1、确定源字符的编码格式,假设是utf8;

2、使用unicode()或decode()转换成unicode编码,如str1.decode('utf8'),或者unicode(str1, 'utf8');

3、把处理后字符串用encode()编码成指定格式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/381217.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

继承之接口知识点和思考练习

知识点 接口是一种数据结构,它包含了一组函数型方法,通过这组数据结构,用户代码可以调用组件的功能。 访问修饰符 interface 接口名 { 接口体 } 接口声明时,注意一下几个方面: 1)访问修饰符只能是new…

sqlserver大数据表操作慢_架构师必看!操作日志系统搭建秘技

​在Java开发中,我们经常会遇到一个棘手的问题:记录用户的操作行为。某些操作是相对简单的,我们可以逐条记录。但是某些操作行为却很难记录,例如编辑操作。在某一次操作中,用户可能编辑了对象A的几个属性,而…

linux 卸载sphinx,sphinx管理脚本,实现sphinx启动、关闭、重启、生成索引功能 | linux运维小站–linux系统架构_服务器运维_Linux运维工程师工作手札...

最新sphin问题比较多,生成主索引后无法连接上sphinx的,需要重启searchd进程,为了方便管理sphinx,参考网上资料:http://blog.csdn.net/yagas/article/details/6718532 修改一个适合自己的sphinx管理脚本。[codesyntax…

面试题(C++09:Autodesk)

网上收集的Autodesk面试题:1. 在类的普通成员函数中调用虚函数,情况是怎么样的? 具体来说,问题如下: 在类的普通成员函数fun1中调用了本类中的虚函数vfun2。 如果在外部有该类的对象指针pobj&#xff0c…

sql共享功能目录无法更改_大企业数据库服务首选!AliSQL这几大企业级功能你不可不知...

MySQL代表了开源数据库的快速发展,从2004年前后的Wiki、WordPress等轻量级Web 2.0应用起步,到2010年阿里巴巴在电商及支付场景大规模使用MySQL数据库,再到2012年开始阿里云RDS for MySQL为成千上万家客户提供可靠的关系数据库服务&#xff0c…

linux制作成后台服务,把dotnetcore 控制台app设置成linux后台服务

1,新建service文件vimvim /etc/systemd/system/dotnetTest.serviceip内容[Unit]Descriptiondotnet consoleit[Service]ioWorkingDirectory/home/useeinfo/publishconsoleExecStart/usr/bin/dotnet /home/useeinfo/publish/ConsoleApp3.dlltestRestartalwaysserviceS…

linux中汇编语言指令li,汇编语言IMUL指令:有符号数乘法

IMUL(有符号数乘法)指令执行有符号整数乘法。与 MUL 指令不同,IMUL 会保留乘 积的符号,实现的方法是,将乘积低半部分的最高位符号扩展到高半部分。x86 指令集支持三种格式的 IMUL 指令:单操作数、双操作数和三操作数。单操作数格式…

递归下降语法分析器的构建_一文了解函数式查询优化器Spark SQL Catalyst

大数据技术与架构点击右侧关注,大数据开发领域最强公众号!暴走大数据点击右侧关注,暴走大数据!记录一下个人对sparkSql的catalyst这个函数式的可扩展的查询优化器的理解,目录如下:0. Overview1. Catalyst工…

面试英语自我介绍的常用词汇

面试英语自我介绍的常用词汇 面试英语自我介绍的常用词汇 Words & Expressions&范文 精华汇总贴 想 找一份满意的工作吗?面试中面对外国老板连珠炮似的提问,有没有觉得心慌意乱、无所适从?求职过程中面试尤为重要,回答问题…

被远程机器长时间无响应 (错误码:[308])_自动折叠式“Rollbot”为完全不受束缚的软机器人铺平了道路...

如今,大多数软机器人依靠外部电源和控制,使它们与车外系统连接或用硬件组装。现在,来自哈佛大学约翰保尔森工程与应用科学学院(SEAS)和加州理工学院的研究人员开发了受折纸结构启发的软机器人系统,可以根据…

kali linux编辑记事本,kali linux操作系统

最近在研究kali linux***操作系统,可能有许多人还不知道这个系统,但是,我可以告诉大家,你想成为电影***那样,这个操作系统能够帮助你实现Kali Linux 前身是著名***测试系统BackTrack ,是一个基于 Debian 的…

如何系统地自学python~知乎_经验分享 | 如何系统地自学 Python?

是否非常想学好 Python,一方面被琐事纠缠,一直没能动手,另一方面,担心学习成本太高,心里默默敲着退堂鼓?幸运的是,Python 是一门初学者友好的编程语言,想要完全掌握它,你不必花上太…

飞信SDK内容【转载】

使用飞信SDK开发短信收发程序2008-10-13 13:57利用飞信的协议可以在线收发消息,或是向手机发送消息。由此,可以自己来完成一个IM工具。本文即是对飞信SDK的使用方法,及如何开发作一个说明。一、引用FetionSDK飞信是采用C#开发的,所…

linux中将光标与操作系统,linux操作系统基本命令介绍(2)

whoami 查看当前用户su - 用户名 切换用户的同时再切换用户空间创建工作组(注意:需要切换到root用户)groupadd 组名删除工作组groupdel 组名修改用户所在组usermod -g 用户名 组名添加用户账号useradd 用户名-d 指定用户登录系统时的主目录,如果不使用该…

vm磁盘映射 不能启动_Oracle的启动与关闭-数据库(4)

Oracle数据的库的启动与关闭,为了节约资源消耗,把我们用到的服务开启,这样对于项目开发也有好处。1 Oracle 启动Oracle 是通过系统的服务来启动的。图1. 找到计算机管理图2. 找到服务,点击图3. Oracle相关启动项图4. 如何关闭和启…

ASP.NET Session详解

原文 http://www.zxbc.cn/html/20090711/72153.html 当用户在 Web 应用程序中导航 ASP.NET 页时,ASP.NET 会话状态使您能够存储和检索用户的值。HTTP 是一种无状态协议。这意味着 Web 服务器会将针对页面的每个 HTTP 请求作为独立的请求进行处理。服务器不会保留以前…

python datetime.date 和数据库date_Python成为专业人士笔记-date 对象、time 对象及datetime用法深度剖析...

“专业人士笔记”系列目录:创帆云:Python成为专业人士笔记--强烈建议收藏!每日持续更新!​zhuanlan.zhihu.com将字符串解析为对应时区的datetime对象Python 3.2在将字符串解析为datetime对象时支持%z格式:import datet…

linux充当防火墙,Linux下主机充当防火墙的巧妙应用之iptables!.doc

Linux下主机充当防火墙的巧妙应用之iptables!Linux下主机充当防火墙的巧妙应用之iptables!实验综合拓扑图:注意事项:防火墙由Red Hat Linux 5.4 版本的机器充当,eth0 使用Host-only (vmware 1),eth1 使用Bridge(本地连接),eth2(vmware 2)前期…

学习总结——实现生成excel表格(方法二)

本方法主要是利用了反射&#xff0c;具体代码如下&#xff1a;Codepublic static int ExportTohtmlExcel__dksq_view(string strsql) { //贷款申请信息获得 BLLibrary.BView_jbxx_dksq viewdal new BView_jbxx_dksq(); IList<View…

linux svn cleanup 用法,SVN命令之清理命令(clean up)的功能及使用技巧

SVN的清理命令&#xff0c;我们经常会使用。这个命令的原理&#xff0c;我们还是有必要深究一下的。当SVN改变你的工作拷贝(或是.svn中的任何信息)&#xff0c;它会尽可能的小心。在进行任何修改操作时&#xff0c;SVN都会把日志记录到日志文件中&#xff0c;然后执行log文件中…