将字符串转换为utf-16

时间:2018-05-16 21:17:34

标签: python python-3.x python-unicode

我有一个包含日文字符的文本文件。我从中读了一行,并希望将其转换为utf-16。我怎么能用Python做到这一点?我的代码看起来像这样 -

with open("C:\\Users\\badri\\jap.txt", 'rb') as f:
    for line in f:
        u = line.decode(encoding='utf-16',errors='strict')

我收到此错误“LookupError:unknown encoding:utf-16”

原因是我想在utf-16中使用它是因为单词是用空格分隔的,所以文本文件所用的语言无关紧要。我可以使用空格作为分隔符并计算单词数在文件中。

一旦分开,我就可以用这种方式轻松打印 -

u1 = u'\u0048\u0065\u006c\u006c\u006f'
u2 = u'\u0077\u006f\u0072\u006c\u0064'
u3 = u'\u3053\u3093\u306b\u3061\u306f\u4e16\u754c'
print u1
print u2
print u3

Hello
world
こんにちは世界

1 个答案:

答案 0 :(得分:0)

这完全取决于文件的编码。

无论哪种方式,您都需要首先解码该行,然后对其进行重新编码,使其成为utf-16。

with open(file_path, "r") as fh:
    for line in fh:
        string = line.decode("utf-8").encode("utf-16")