chj0771 发表于 2017-4-21 08:37:21

Python Unicode

  今天学习Python时,遇到一个问题,Python Non-ASCII character '\xb0'
  原因:字符编码问题
  解决:首行加入# -*- coding: utf-8 -*-
  codec:定义文本到二进制的字符转换
  ASCII
  UTF-8: 1个字节表示ASCII 完全相同        1-4个字节处理其他字符 
  (单独值处理UTF-8时,会出现不能以定长字节读取字符)
  UTF-16:  固定格式的2字节   分为大端形式和小端形式,不向后兼容ASCII-8
  看个例子:写入时用UTF-16编码,读取不用UTF-16解码会出错
  


'''
An example of Unicode strings
using utf-8
'''
CODEC = 'utf-16'
out = u'hello world\n'
open('1.txt','w').write(out.encode(CODEC))
readin = open('1.txt','r').read()
print readin,
print readin.decode(CODEC),
  总结:
  1.程序中出现字符串时一定要加个前缀 u. 
  2.不要用 str()函数,用 unicode()代替. 
  3.不要用过时的 string 模块,如果传给它的是非 ASCII 字符,会把一切搞砸
  4.不到必须时不要在你的程序里面编解码 Unicod 字符.只在你要写入文件或数据库或者网络时才需要
页: [1]
查看完整版本: Python Unicode