zoukankan      html  css  js  c++  java
  • windows下python 编码问题

    windows下py文件编码:

    当print 时遇到unicode 会根据系统编码转换,

    而raw_input 中的输出遇到unicode编码是不会的转码的,会报错UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: ordin

    al not in range(128)

    因为uncode的编码的第一个字符大于128(0x7f)

    下面的实验能证明:

     1 #coding:utf8
     2 a=u'你好'
     3 print 'with u:',buffer(a)
     4 
     5 print 'per char:',
     6 for i in a:
     7     print ord(i),
     8 print u'在文件中,变量中保存的加u的字符串会被转换为unicode类型,a变量是unicode字符串'
     9 
    10 b='你好'
    11 print ''
    12 print 'without u:',buffer(b)
    13 print 'percahr:',
    14 for i in b:
    15     print ord(i),
    16 
    17 print u'在文件中不加u的字符串在变量中保存的 与文件指示编码一致,b变量是被utf8编码过的字符串'
    18 
    19 c=raw_input('输入字符串:
    '.decode('utf8').encode('gbk'))
    20 
    21 print u'上句raw_input 中的字符串加u会报错,raw_input的输出会直接输出到终端,不会转换为gbk'
    22 m=raw_input("继续输入一个字符串:
    ")
    23 
    24 print u'这是输入的字符,是gbk编码的,不会乱码:',m
    25 
    26 print u'上一句产生乱码是因为其中的(raw_input函数中的)utf8编码的数据恰好在gbk中能对应到'
    27 
    28 
    29 print type(c)
    30 print u'输入的字符串:'
    31 for i in c:
    32     print ord(i),
    33 print u'输入的字符串跟终端的环境制定的编码是一样的'
  • 相关阅读:
    前端学PHP之语句
    前端学PHP之运算符
    ASP.NET MVC的TextBoxFor()和TextBox()
    在_Layout模版中使用@Styles.Render()没有效果
    使用HTML.ActionLink实现一个图片链接
    微软最有价值专家大中华峰会花絮视频
    激活当前视图菜单高亮呈现
    获取当前视图名
    Razor语法中链接的一些方法
    Razor语法的一些特殊需求输出
  • 原文地址:https://www.cnblogs.com/Yeah-come-on/p/3593437.html
Copyright © 2011-2022 走看看