I keep getting an Encoding::UndefinedConversionError - "xC2" from ASCII-8BIT to UTF-8
every time I try to convert a hash into a JSON string. I tried with [.encode | .force_encoding](["UTF-8" | "ASCII-8BIT" ])
, chaining .encode
with .force_encoding
, backwards, switching parameters but nothing seemed to work so I caught the error like this:
begin
menu.to_json
rescue Encoding::UndefinedConversionError
puts $!.error_char.dump
p $!.error_char.encoding
end
Where menu is a sequel's dataset.to_hash with content from a MySQL DB, utf8_general_ci encoding and returned this:
"xC2"
<#Encoding:ASCII-8BIT>
The encoding never changes, no matter what .encode
/.force_encoding
I use. I've even tried to replace the string .gsub!(/\xC2/)
without luck.
Any ideas?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…