diff options
author | Stuart Preston <stuart@chef.io> | 2018-06-26 23:54:41 +0100 |
---|---|---|
committer | Stuart Preston <stuart@chef.io> | 2018-06-26 23:54:41 +0100 |
commit | 2925021aba749ee0c00c082b280c2aba12cc4be9 (patch) | |
tree | 41fcd100b9bfd8adb6cad475175a3c7f30df17e3 /lib | |
parent | b965bf299489773b7a2682b47f27c5af8e8320e5 (diff) | |
parent | 4e39c729c5981067c028bd3abcb50b066d760a28 (diff) | |
download | chef-2925021aba749ee0c00c082b280c2aba12cc4be9.tar.gz |
Merge branch 'master' into sp/ffi-powershell
Signed-off-by: <>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/chef/mixin/wide_string.rb | 28 |
1 files changed, 5 insertions, 23 deletions
diff --git a/lib/chef/mixin/wide_string.rb b/lib/chef/mixin/wide_string.rb index ef7828e2d8..2fcb5caadb 100644 --- a/lib/chef/mixin/wide_string.rb +++ b/lib/chef/mixin/wide_string.rb @@ -31,40 +31,22 @@ class Chef def utf8_to_wide(ustring) # ensure it is actually UTF-8 # Ruby likes to mark binary data as ASCII-8BIT - ustring = (ustring + "").force_encoding("UTF-8") if ustring.respond_to?(:force_encoding) && ustring.encoding.name != "UTF-8" + ustring = (ustring + "").force_encoding("UTF-8") # ensure we have the double-null termination Windows Wide likes ustring += "\000\000" if ustring.length == 0 || ustring[-1].chr != "\000" # encode it all as UTF-16LE AKA Windows Wide Character AKA Windows Unicode - ustring = begin - if ustring.respond_to?(:encode) - ustring.encode("UTF-16LE") - else - require "iconv" - Iconv.conv("UTF-16LE", "UTF-8", ustring) - end - end - ustring + ustring.encode("UTF-16LE") end def wide_to_utf8(wstring) # ensure it is actually UTF-16LE # Ruby likes to mark binary data as ASCII-8BIT - wstring = wstring.force_encoding("UTF-16LE") if wstring.respond_to?(:force_encoding) + wstring = wstring.force_encoding("UTF-16LE") - # encode it all as UTF-8 - wstring = begin - if wstring.respond_to?(:encode) - wstring.encode("UTF-8") - else - require "iconv" - Iconv.conv("UTF-8", "UTF-16LE", wstring) - end - end - # remove trailing CRLF and NULL characters - wstring.strip! - wstring + # encode it all as UTF-8 and remove trailing CRLF and NULL characters + wstring.encode("UTF-8").strip end end |