如何在utf-8中解码韩文?

问题描述

我用utf-8打开了文件,但是如果文件包含韩文,则无法解码。我该怎么办?

generated_file = open("runcode.py","w",encoding='utf-8')
outputData = subprocess.check_output("python runcode.py",shell = True)
outputData = outputData.decode('utf-8')

示例

b'20\xba\xb8\xb4\xd9 \xc0\xdb\xc0\xbd\r\n'

解决方法

问题中的字节可以使用Python codecs documentation中列出的标准编码中的多种编码进行解码。

>>> bs = b'20\xba\xb8\xb4\xd9 \xc0\xdb\xc0\xbd\r\n'
>>> print(bs.decode('cp949'))
20보다 작음

>>> print(bs.decode('euc_kr'))
20보다 작음

>>> print(bs.decode('johab'))
20줮얯 첕챻

请注意,输出并不总是相同的-字节可能以不同的编码方式编码不同的字符。您可能需要对较大的样本进行试验,以确定环境中使用的是哪种编码。