Module: ExecJS::Encoding

Included in:
Runtime::Context
Defined in:
lib/execjs/encoding.rb

Overview

Encodes strings as UTF-8

Instance Method Summary collapse

Instance Method Details

#encode(string) ⇒ Object

workaround for jruby bug jira.codehaus.org/browse/JRUBY-6588 workaround for rbx bug github.com/rubinius/rubinius/issues/1729



7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/execjs/encoding.rb', line 7

def encode(string)
  if string.encoding.name == 'ASCII-8BIT'
    data = string.dup
    data.force_encoding('UTF-8')

    unless data.valid_encoding?
      raise ::Encoding::UndefinedConversionError, "Could not encode ASCII-8BIT data #{string.dump} as UTF-8"
    end
  else
    data = string.encode('UTF-8')
  end
  data
end