-
Notifications
You must be signed in to change notification settings - Fork 96
Closed
Labels
Description
Given some invalid JS with some non-English (but valid encoding-wise) characters:
js = 'var test = "в себе "шок-контент", на'
=> "var test = \"в себе \"шок-контент\", на"
js.encoding
=> #<Encoding:UTF-8>
js.valid_encoding?
=> truemini_racer will raise MiniRacer::ParseError (good), but the error message will have its encoding mangled.
begin
MiniRacer::Context.new(timeout: 500, max_memory: 20_000_000).eval(js)
rescue MiniRacer::ParseError => e
msg = e.message
end
=> "Uncaught SyntaxError: Unexpected identifier '\xD1\x88\xD0\xBE\xD0\xBA' at <eval>:1:20"
msg.encoding
=> #<Encoding:BINARY (ASCII-8BIT)>
msg.valid_encoding?
=> true
puts msg
(app):16:in 'IO#write': "\xD1" from ASCII-8BIT to UTF-8 (Encoding::UndefinedConversionError)
from (app):16:in 'IO#puts'
from (app):16:in 'Kernel#puts'
from (app):16:in '<main>'