gpt4 book ai didi

ruby - JSON.parse 抛出 Encoding::UndefinedConversionError

转载 作者:数据小太阳 更新时间:2023-10-29 07:35:56 26 4
gpt4 key购买 nike

在 Windows 上出现以下错误:

Encoding::UndefinedConversionError: "\xEF" from ASCII-8BIT to UTF-8

代码:

text = File.open(file, 'r:binary', &:read); #opens file and reads it with r:binary flag
puts text; #works i get here, outputs the below file contents
data = JSON.parse(text.force_encoding(Encoding::UTF_8)); #fails here with above error

注意:我也试过 R:UTF-8。


文件内容:

{
"Environments": [
{
"Environment": "UT",
"Configuration_Directory": "configs/",
"Files": [
{
"Source": "Web.ENV.config",
"Destination": "Web.config"
}
]
},
{
"Environment": "UAT",
"Configuration_Directory": "configs/",
"Files": [
{
"Source": "Web.ENV.config",
"Destination": "Web.config"
}
]
},
{
"Environment": "Staging",
"Configuration_Directory": "configs/",
"Files": [
{
"Source": "Web.ENV.config",
"Destination": "Web.config"
}
]
},
{
"Environment": "Production",
"Configuration_Directory": "configs/",
"Files": [
{
"Source": "Web.ENV.config",
"Destination": "Web.config"
}
]
}
]
}

最佳答案

我遇到了这个问题,原始字符串是带 BOM 的 UTF-8,但 Ruby 将其编码为 ASCII-8 位。我将字符串转换为字节数组,然后再转换回字符串,同时强制编码为 UTF-8。

string_value.bytes.pack("c*").force_encoding("UTF-8")

关于ruby - JSON.parse 抛出 Encoding::UndefinedConversionError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26066818/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com