我想使用应该包含日文字符的this dictionary file,但出于某种原因,它会显示非感知字符,例如"ä¹™ 勹 月 ç”° 亀"
。
文件的介绍说明:
“现在使用的编码方案不再是EUC-JP
,方便的2个字节用于JIS x 208
,3个字节用于JIS x 0212
。此文件的编码现在是UTF-8
因此,每个字符的字节长度变化很大。正确处理Unicode要求您的软件不依赖于固定的字节长度。编码方法改变的主要原因是JIS x 0213
标准汉字未在扩展Unix代码日语编码方案中定义(EUC-JP
)。“
我尝试使用python 3解码它没有成功:
unknown_string = "𪚲 : 乙 勹 月 田 亀"
decoded_string = unknown_string.decode('unicode_escape').encode('latin-1').decode('utf8')
print(decoded_string)
(结果打印𪚲:ä¹™å<ææœç“°äº€)
unknown_string = "𪚲 : 乙 勹 月 田 亀"
decoded_string = unknown_string.encode('latin1').decode('utf-8')
print(decoded_string)
(结果为UnicodeEncodeError: 'latin-1' codec can't encode character '\u0161' in position 2: ordinal not in range(256)
)
我也尝试查看字节,但我看不到连接。例如,化学的十六进制值为\xE5\x8C\x96
,但在文件中将其替换为值为\xC3\xA5\xC5\x92\xE2\x80\x93
的åŒ-。
如何检索原始日文字符?
答案 0 :(得分:0)
您可以使用this file from jpnetkit准备字典:
krad = Kradfile()
krad.get_kradfile()
kanji_dict = krad.prepare_radikals()
for w in kanji_dict[u'㔟']:
print w
# 丶 力 九 生
如果您想从头开始进行解析,可以查看此link以获得完整版本。
或者只需下载并解压缩即可。我认为原因是链接应该下载,而不是在浏览器中打开。当浏览器打开此gz文件时,它不知道charset,因此显示无意义的字符。