:undef => :replace, :replace => '?').encode("UTF-8")
end
else
- # removes invalid UTF8 sequences
+ ic = Iconv.new('UTF-8', 'UTF-8')
+ txtar = ""
begin
- str = Iconv.conv('UTF-8//IGNORE', 'UTF-8', str + ' ')[0..-3]
- rescue Iconv::InvalidEncoding
- # "UTF-8//IGNORE" is not supported on some OS
+ txtar += ic.iconv(str)
+ rescue Iconv::IllegalSequence
+ txtar += $!.success
+ str = '?' + $!.failed[1,$!.failed.length]
+ retry
+ rescue
+ txtar += $!.success
end
+ str = txtar
end
str
end
s1.force_encoding("ASCII-8BIT") if s1.respond_to?(:force_encoding)
str = to_utf8(s1)
if str.respond_to?(:force_encoding)
- assert_equal "Texte encod? en ISO-8859-1.", str
assert str.valid_encoding?
assert_equal "UTF-8", str.encoding.to_s
- else
- assert_equal "Texte encod en ISO-8859-1.", str
end
+ assert_equal "Texte encod? en ISO-8859-1.", str
end
end
end