user1937021
user1937021

Reputation: 10781

Incompatible character encodings error

I'm trying to run a ruby script which generates translated HTML files from a JSON file. However I get this error:

incompatible character encodings: UTF-8 and CP850

Ruby

translation_hash = JSON.parse(File.read('translation_master.json').force_encoding("ISO-8859-1").encode("utf-8", replace: nil))

It seems to get stuck on this line of the JSON:

Json

"3": "Klassisch geschnittene Anzüge",

because there is a special character "ü". The JSON file's encoding is ANSI. Any ideas what could be wrong?

Upvotes: 2

Views: 1140

Answers (2)

ovhaag
ovhaag

Reputation: 1278

IMHO your code should work if the encoding of the json file is "ISO-8859-1" and if it is a valid json file.

So you should first verify if "ISO-8859-1" is the correct encoding and by the way if the file is a valid json file.

# read the file with the encoding, you assume it is correct
json_or_not = File.read('translation_master.json').force_encoding("ISO-8859-1")

# print result and ckeck if something is obscure
puts json_or_not

Upvotes: 1

Kenny Bania
Kenny Bania

Reputation: 637

Try adding # encoding: UTF-8 to the top of the ruby file. This tells ruby to interpret the file with a different encoding. If this doesn't work try to find out what kind of encoding the text uses and change the line accordingly.

Upvotes: 2

Related Questions