【问题标题】:Unicode, utf-8, binary, ASCII in PythonPython 中的 Unicode、utf-8、二进制、ASCII
【发布时间】:2014-01-14 02:02:55
【问题描述】:

  1. 它们有什么区别?
  2. Python 3.0 使用文本和(二进制)数据的概念,而不是 Unicode 字符串和 8 位字符串。所有文本都是 Unicode;然而,编码的 Unicode 被表示为二进制数据。

这是什么意思?

谢谢。

【问题讨论】:

标签: python unicode utf-8 binary ascii


【解决方案1】:

您需要了解的有关 unicode 和编码的所有信息都在这里 - 它与 Python 无关:http://www.joelonsoftware.com/articles/Unicode.html

wrt/ 第二个问题:Python3 有两种“字符串”:文本字符串(unicode)和二进制字符串(又名bytestrings),它们不是 unicode。对文本字符串(iow unicode)进行编码会产生二进制字符串。

【讨论】:

    【解决方案2】:

    故事:

    Unicode 是一种 python 数据类型,用于存储所有个字符。

    UTF-8 是一种可变宽度编码,可以表示 Unicode 字符集中的每个字符。它旨在向后兼容 ASCII,并避免 UTF-16 和 UTF-32 中字节顺序和字节顺序标记的复杂性。

    ASCII, 美国信息交换标准代码 (ASCII /ˈæski/ ass-kee) 是一种字符编码方案,最初基于英文字母表,它编码 128 个指定字符 - 数字 0 -9、字母 az 和 AZ、一些基本的标点符号、一些源自电传打字机的控制代码和一个空格 - 输入 7 位二进制整数。


    总结:

    这三种是同一事物的不同形式:String,又名Text


    区别:

    Ascii 用于这样的纯文本,但 unicode 用于更全面的文本,例如:

        ∮ E⋅da = Q,  n → ∞, ∑ f(i) = ∏ g(i),      ⎧⎡⎛┌─────┐⎞⎤⎫
                                                ⎪⎢⎜│a²+b³ ⎟⎥⎪
      ∀x∈ℝ: ⌈x⌉ = −⌊−x⌋, α ∧ ¬β = ¬(¬α ∨ β),    ⎪⎢⎜│───── ⎟⎥⎪
                                                ⎪⎢⎜⎷ c₈   ⎟⎥⎪
      ℕ ⊆ ℕ₀ ⊂ ℤ ⊂ ℚ ⊂ ℝ ⊂ ℂ,                   ⎨⎢⎜       ⎟⎥⎬
                                                ⎪⎢⎜ ∞     ⎟⎥⎪
      ⊥ < a ≠ b ≡ c ≤ d ≪ ⊤ ⇒ (⟦A⟧ ⇔ ⟪B⟫),      ⎪⎢⎜ ⎲     ⎟⎥⎪
                                                ⎪⎢⎜ ⎳aⁱ-bⁱ⎟⎥⎪
      2H₂ + O₂ ⇌ 2H₂O, R = 4.7 kΩ, ⌀ 200 mm     ⎩⎣⎝i=1    ⎠⎦⎭
    

    参考资料:


    建议进一步阅读:


    【讨论】:

    • Unicode 也用于“纯文本”。只要看看任何非英文网站。
    • 不,我的意思不是“仅适用于综合文本”,而不适用于纯文本。我的意思是,also 用于综合文本..
    猜你喜欢
    • 2013-03-22
    • 2014-02-13
    • 1970-01-01
    • 2011-01-07
    • 2016-05-03
    • 2017-05-08
    • 2013-10-15
    相关资源
    最近更新 更多