use*_*951 2 python unicode encoding
如何读取unicode文件python 2.x(不是UTF-8,未知编码)
我试图找到一种读取unicode文件的方法。\n我在网上搜索了很久很久。\n但我找不到它。\n我找到的是读取诸如UTF-编码的文件的方法8.\n我知道,当我需要读取UTF-8时,我可以使用编解码器。
\n\ncodecs.open(\'unicode2.txt\',encoding=\'utf-8\')
使用它我可以读取 UTF-8 文件。\n但是我想知道如何读取unicode文件。\n很多标题为“Python中读取unicode文件的方法”的帖子实际上讲述了一种读取UTF-8、UTF-16等文件的方法。
\n\n为什么没有人解释读取“UNICODE”文件的方法?
\n\n这是我尝试用 python 读取的文本文件的十六进制值的示例。
\n\n这是韩语,“ \xed\x8c\x8c\xec\x9d\xb4\xec\x8d\xac\xec\x97\x90\xec\x84\x9c \xed\x95\x9c\xea\xb8\x80 \xec\x9d\xbd\xea\xb8\xb0”
(FF FE) 0C D3 74 C7 6C C3 D0 C5 1C C1 20 00 5C D5 00 AE 20 00 7D C7 30 AE\nRun Code Online (Sandbox Code Playgroud)\n\n(FF FE)表示字节顺序。\n每 2 个字节表示字符。可以看到,空格写为“20 00”,而不是“20”\n在unicode中,空格写为“20 00”。但UTF-8,空格写成“20”。
没有办法使用像“ codecs.open(\'unicode2.txt\',encoding=\'**unicode**\')”这样的编解码器
难道真的没有办法在Python中读取“unicode”文件吗?
\n磁盘文件是一个字节序列,如果使用 utf-8、utf-16le 等字符编码,则可以将其解释为文本。“unicode”不是字符编码。
\n\n\n\n您的示例文件可能使用utf-16le编码:
>>> text = u"\xed\x8c\x8c\xec\x9d\xb4\xec\x8d\xac"\n>>> text.encode(\'utf-16le\')\n\'\\x0c\\xd3t\\xc7l\\xc3\'\n>>> text.encode(\'utf-16le\').encode(\'hex\')\n\'0cd374c76cc3\'\nRun Code Online (Sandbox Code Playgroud)\n\nb\'\\xff\\xfe\' == codecs.BOM_UTF16_LE是 UTF-16 (LE) 字符编码的 BOM。要读取此类文件,可以使用 utf-16 编码(根据 BOM 选择 BE 或 LE):
import codecs\n\nwith codecs.open(\'filename\', encoding=\'utf-16\') as file:\n text = file.read()\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
6765 次 |
| 最近记录: |