我读了一个.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
。