zoukankan      html  css  js  c++  java
  • 關於python 2.x中文字編碼的簡單說明

    關於python 2.x中文字編碼的簡單說明 from v2ex
    By 013231 at 2 天前, 154 次点击
    剛剛看到有人在糾結文字編碼的問題, 我來說一下我的理解.
    我也是Python新手, 此文中如有錯誤請指正.
    1. 如果文件含有非ASCII字符, 在開頭加一行註釋:
    # encoding=utf-8
    # 如果你的源代碼文件不是UTF-8編碼, 把'utf-8'換成相應的編碼
    否則你會遭遇
    SyntaxError: Non-ASCII character
    錯誤.
    2. str類型是字節序列而非字符序列. 它的編碼方式由文件本身的編碼方式或encode時指定的編碼方式決定:
    1. 寫在源文件中的str, 編碼方式爲源文件的編碼方式.
    2. 從其它文件中讀取的str, 就是那個文件中的字節序列, 不做任何轉換.
    3. 使用encode方法得到的str, 其編碼爲指定編碼.
    對str使用len, 會返回字節序列的長度:
    UTF-8環境下, '文字'的字節序列爲0xe6 0x96 0x87 0xe5 0xad 0x97, len('文字') == 6.
    GB18030環境下, '文字'的字節序列爲0xce 0xc4 0xd7 0xd6, len('文字') == 4
    3. unicode類型是字符序列, 無需關心它內部的編碼方式(可能爲USC-2或USC-4).
    無論編碼爲何, len(u'文字') == 2.
    4. encode的作用是把字符序列編碼成字節序列(unicode -> str), decode的作用是把字節序列解碼成字符序列(str -> unicode). 如果對unicode使用encode或對str使用decode, 會得到錯誤或無意義的結果.
    5. __str__必須返回str類型, __unicode__必須返回unicode類型. 否則會收到TypeError.
    3 回复  |  直到 2012-05-08 16:07:00 PM
        1
    reus   2 天前
    很清楚明白
        2
    arzon   2 天前
    各种情况都解释地很清楚.
    还不太了解python文字编码机制的同学可以看看.
        3
    loading   2 天前
    为了表示感谢,回复一个。5个铜币,亲收下^_^
  • 相关阅读:
    关于哈希表的一些资料
    ACM题目推荐(刘汝佳书上出现的一些题目)
    搜索引擎技术文章
    计算机体系结构文章摘选
    正则表达式语法
    三维地形显示
    无砝码天平3次称出12个小球中质量异常球问题
    关于char, wchar_t, TCHAR, _T(),L,宏 _T、TEXT,_TEXT(转)
    vcf文件分解
    Oracle 创建自动增加主键的表
  • 原文地址:https://www.cnblogs.com/lexus/p/2495372.html
Copyright © 2011-2022 走看看