1.在py文件中使用中文字符

unicode.py文件内容如下所示:

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

str_ch = '我们women'

uni_ch = u'我们women'

print "type:", type(str_ch), "content:", str_ch, repr(str_ch)

print "type:", type(uni_ch), "content:", uni_ch, repr(uni_ch)

需要在文件第一行输入以下内容:“# -*- coding: utf-8 -*-",否则在执行时将会抛出如下异常信息。

SyntaxError: Non-ASCII character '\xe6' in file unicode.py on line 3, but no encoding declared;

在声明编码类别后,执行结果如下:

type: content: 我们women '\xe6\x88\x91\xe4\xbb\xacwomen'

type: content: 我们women u'\u6211\u4eecwomen'

使用命令“od -t c unicode.py”查看文件在硬盘上的内容如下:

0000000 # - * - c o d i n g : u t f

0000020 - 8 - * - \n \n s t r _ c h =

0000040 ' 346 210 221 344 273 254 w o m e n ' \n u

0000060 n i _ c h = u ' 346 210 221 344 273 254

0000100 w o m e n ' \n \n p r i n t " t

0000120 y p e : " , t y p e ( s t r _

0000140 c h ) , " c o n t e n t : " ,

0000160 s t r _ c h , r e p r ( s

0000200 t r _ c h ) \n p r i n t " t y

0000220 p e : " , t y p e ( u n i _ c

0000240 h ) , " c o n t e n t : " ,

0000260 u n i _ c h , r e p r ( u n

0000300 i _ c h ) \n

注:346为8进制。

可以看到中文字符在硬盘中以utf-8形式保存,在执行时被python解释器读入内存,遇到非ascii字符时,需要用指定的编码进行转换。

2. Python中字符类型str和unicode

Unicode使用code point描述字符,一个code point就是一个整数值,16-bit。所以,unicode字符串就是一串code point。

书写的方式可以是:

uni_str = u"我们"

uni_str = u"\xac" # 2个16进制数表示

uni_str = u"\u1234" # 4个16进制数表示

uni_str = u"\U00008000" # 8个16进制数表示

str是8bit,从0-255。书写方式如下:

s = '0'

s = '\x30'

s = '\060'

s = chr(48)

# ord(s) 都是48

encoding:将unicode字符串转换成一串bytes(0-255)。

python默认的encoding和decoding都是ascii,当数值超过128时都将会报编码或解码错误。

python中文字符_python处理中文字符相关推荐

  1. python正则匹配任意字符_Python 匹配任意字符(包括换行符)的正则表达式写法...

    Python 匹配任意字符(包括换行符)的正则表达式写法 想使用正则表达式来获取一段文本中的任意字符,写出如下匹配规则: (.*) 结果运行之后才发现,无法获得换行之后的文本.于是查了一下手册,才发现 ...

  2. python加中文注释_Python使用中文注释和输出中文(原创)

    刚开始学习python,需要在Python中注释中文和输出中文,现在开始尝试: 仅为初步学习参考,高手请绕行. -------------------------------------------- ...

  3. python的变量名可以是中文吗_Python中用中文变量名、函数名,会影响性能吗?

    首先,python这样的语言,只能做有限的"词法编址"(lexical address),不可能实现 @王加加 所说的"所有变量名函数名等名称,在转成字节码后,只是一个个 ...

  4. python可打印字符_python不可打印字符有哪些

    python不可打印字符有哪些 发布时间:2020-09-24 15:46:57 来源:亿速云 阅读:65 作者:Leah 今天就跟大家聊聊有关python不可打印字符有哪些,可能很多人都不太了解,为 ...

  5. sql数字转换为字符_Python|图片转换为字符画^_^

    我们很清楚什么是图片,无外乎png.jpg等格式的文件,例如这个? 但什么是字符画呢?先看一下官方介绍: 字符画,一种由字母.标点.汉字或其他字符组成的图画.简单的字符画是利用字符的形状代替图画的线条 ...

  6. python怎么统计多少字符_python统计中文字符数量的两种方法

    方法一: def str_count(str): '''找出字符串中的中英文.空格.数字.标点符号个数''' count_en = count_dg = count_sp = count_zh = c ...

  7. python数字转中文字符_Python实现中文数字转换为阿拉伯数字的方法示例

    本文实例讲述了Python实现中文数字转换为阿拉伯数字的方法.分享给大家供大家参考,具体如下: 一.需求 今天写了三千二百行代码. 今天写了3200行代码. 两行意思相同,只是表达方式不太能够,统一掉 ...

  8. python统计出现的中文标点_Python处理中文标点符号大集合

    中文文本中可能出现的标点符号来源比较复杂,通过匹配等手段对他们处理的时候需要格外小心,防止遗漏.以下为在下处理中文标点的时候采用的两种方法: 中文标点集合 比较常见标点有这些: !?。"#$%& ...

  9. 阿里云python中文社区_python写中文

    字符串 你的源代码中包含中文的时候,在保存源代码时,就需要务必指定保存为UTF-8编码.当Python解释器读取源代码时,为了让它按UTF-8编码读取,我们通常在文件开头写上这两行: ```pytho ...

最新文章

  1. Xilinx® 7 series FPGAs CLBs专题介绍(二)
  2. warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失...
  3. python—多线程之守护线程
  4. 针对媒体不实报道误导大众--抹黑C#工资垫底
  5. Tensorflow入门神经网络代码框架
  6. Maven项目下update maven后Eclipse报错:java.lang.ClassNotFoundException: ContextLoaderL
  7. ActiveRecord模式整理
  8. Linux 文件 IO
  9. Win10右键没有压缩选项的解决教程
  10. UI设计素材|卡券界面设计
  11. 程序员面试金典——4.3高度最小的BST
  12. Labview2018学习之三:LabVIEW编程
  13. linux 内核 谁在维护,[转载]Linux 内核维护者封杀明尼苏达大学
  14. html 两个input挨着,欧洲区预选赛直播 -官方网站
  15. 百度二级域名大全 目前为234个http://www.twocity.cn/blog/article.asp?id=818
  16. C语言小项目实践——日历程序
  17. 小学生计算机校本课程教材,二年级校本课程教材
  18. 子佩短信管家 v1.0.0
  19. 笃静守一,深耕匠设:2018“渲云杯”全国空间表现大赛颁奖盛典
  20. 出版现状:以前出书有多简单,现在出书就有多难!

热门文章

  1. lunix系统安装及分区补充安装包
  2. mpls标签分配原理——Vecloud
  3. CentOS屏幕录制
  4. linux下Mplayer安装与设置指南(以及如何加载显示中文字幕)
  5. Java之currenHashMap
  6. 20162328蔡文琛 第十周 周五 课上测试
  7. 百度前端学院---斌斌学院---任务demo---1
  8. lintcode-34-N皇后问题 II
  9. Oracle(21)—— Linux环境部署Oracle11g数据库
  10. Hibernate关联关系映射-----双向一对多/多对一映射配置