zoukankan      html  css  js  c++  java
  • Python的编码问题

    Unicode

      什么是Unicode:Unicode 是计算机可以支持这个星球上多种语言的秘密武器。Unicode使用一个或多个字节来表示一个字符。

    UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6 in position 0: ordinal not in range(128) 问题的解决方法及原理:

      该问题是在python2中将中文进行编码时报的错,意思是ASCII编码的最大长度为128,对中文进行解码时超出了这个范围。因为程序要对中文进行编码时首先要将中文解码成Unicode(系统默认设置是ASCII)。

      解决方法:

      一、在脚本前面设置文件的默认编码方式为utf8

    1 # -*- coding: utf-8 -*-
    2 #!/usr/bin/env python
    3 import sys
    4 reload(sys)                     # 重新导入
    5 sys.setdefaultencoding('utf8')  # 设置默认编码方式为utf8

      

      二、在对中文进行编码前向解码为utf8 格式    

    1 # 报错的代码
    2 str = "中文字符串"
    3 str_out = str.encode('utf8')
    1 # 正常的代码
    2 str = "中文字符串"
    3 str = str.decode('utf8')
    4 str_out = str.encode('utf8')

      三、在定义中文字符串之前先指定字符串的格式,比如:

    1 # 定义时指定字符串编码格式
    2 str = u"中文字符串"
    3 str_out = str.encode('utf8')

        

  • 相关阅读:
    CodeForces 452C Magic Trick (排列组合)
    zoj 3209 Treasure Map(精确覆盖)
    POJ 1459 Power Network(网络流 最大流 多起点,多汇点)
    POJ 1273 Drainage Ditches(网络流 最大流)
    HDU Tickets(简单的dp递推)
    ZOJ 3080 ChiBi(spfa)
    URAL 1036(dp+高精度)
    最佳的 清楚浮动 clearfix
    响应式开发
    javascript 性能优化
  • 原文地址:https://www.cnblogs.com/tester-xt/p/7750487.html
Copyright © 2011-2022 走看看