class String

Public Instance Methods

read_wide_string() click to toggle source

Read a wide character string up until the first double null, and delete any remaining null characters.

# File lib/ffi/win32/extensions.rb, line 130
def read_wide_string
  self[/^.*?(?=\x00{2})/].delete(0.chr)
end
wincode() click to toggle source

Convenience method for converting strings to UTF-16LE for wide character functions that require it.

# File lib/ffi/win32/extensions.rb, line 112
def wincode
  (tr(File::SEPARATOR, File::ALT_SEPARATOR) + 0.chr).encode("UTF-16LE")
end
wstrip() click to toggle source

Read a wide character string up until the first double null, and delete any remaining null characters. If this fails (typically because there are only null characters) then nil is returned instead.

# File lib/ffi/win32/extensions.rb, line 120
def wstrip
  force_encoding("UTF-16LE").encode("UTF-8", invalid: :replace, undef: :replace)
    .split("\x00")[0].encode(Encoding.default_external)
rescue
  nil
end