Method: Toolkit::String.safe

Defined in:
lib/string.rb

.safe(str) ⇒ Object

遇到了 invalid byte sequence in UTF-8 (ArgumentError) 问题解决办法参考 stackoverflow.com/questions/29877310/invalid-byte-sequence-in-utf-8-argumenterror



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

def safe(str)
	case OS.os_family
	when "unix"
		if ! str.valid_encoding?
			str = str.encode("UTF-16be", :invalid=>:replace, :replace=>"?").encode('UTF-8')
		end 
	when "windows"
		#str = str.force_encoding("UTF-8")
		str = str.encode("UTF-16be", :invalid=>:replace, :replace=>"?").encode('UTF-8')
	end
    return str 
end