在Python 2中将带有整数值的Unicode字符写入文本文件

时间:2016-05-31 09:25:13

标签: python unicode

  1. 在Python 2中,我想写一个Unicode字符,整数值为k到文本文件。
  2. 我该怎么做?

    (例如,使用ASCII,如果我想写出值为65的字符,则在文本文件中它应显示为' A')。

    1. 之后,我应该如何将文件读回整数值?

    2. 最后一个问题,总共有多少个Unicode字符? (据我所知,有多个Unicode字母表,如UTF-8,UTF-16等)

    3. 非常感谢

1 个答案:

答案 0 :(得分:1)

  1. 您无法将Unicode代码点写入文本文件。它们必须编码。 UTF-8,UTF-16和UTF-32是支持所有Unicode代码点的编码。 unichr()是将整数转换为Unicode代码点的函数。请注意,如果您没有指定操作系统,Python 2将默认为依赖于您的操作系统的编码,但它无法编写所有 Unicode字符,除非该默认值为UTF编码之一。
  2. 创建Unicode字符:

    k = 65
    u = unichr(k)
    

    将其写入以UTF-8编码的文件:

    import io
    with io.open('output.txt','w',encoding='utf8') as f:
        f.write(u)
    
    1. ord()会将字符转换回整数。
    2. 示例(确保使用与编写的编码相同的打开方式打开):

      import io
      with io.open('output.txt',encoding='utf8') as f:
      u = f.read()
      k = ord(u)
      
      1. Unicode代码点范围从U + 0000到U + 10FFFF。并非所有代码点都已定义,但该范围内有1,114,112个可能的值。