当我从 txt 中读取时,Dict 的键没有得到认可 - Julia

Keys of Dict are not enconded when I read from txt - Julia

我读了一个.txt文件(它包含一个Dict)但是Dict的键有错误。在原始文件中名称是正确的(例如:文件有 "P. Cárdenas" 但我有 "P. C\xe1rdenas")

>> f = open("dict.txt", "r")
>> dict_maestro = JSON.parse(f)

>>Dict{String,Any} with 5 entries:
  "P. C\xe1rdenas"      => Dict{String,Any}("dist_tm"=>Any[Any[0.248, 0.074, 0.…
  "S. L\xf3pez"         => Dict{String,Any}("dist_tm"=>Any[Any[0.096, 0.082, 0.…
  "S. Cabrera"          => Dict{String,Any}("dist_tm"=>Any[Any[0.341, 0.094, 0.…
  "C. Mu\xf1oz"         => Dict{String,Any}("dist_tm"=>Any[Any[0.246, 0.073, 0.…
  "R. Bugue\xf1o"       => Dict{String,Any}("dist_tm"=>Any[Any[0.261, 0.068, 0.…

我怎样才能得到正确的名字?

如果我没记错的话,您正在以字节而不是 UTF 字符串的形式读取文件。根据链接重复问题的答案,您应该首先将文件的内容转换为适当编码的字符串,然后将其解析为 JSON。这将大致按照以下方式进行:

s = open("dict.txt", "r") do f
    utf16(readbytes(f))
end

dict_maestro = JSON.parse(s)

如果这是您文件中的编码,您可以使用 utf8 而不是 utf16