21 lines
485 B
Ruby
21 lines
485 B
Ruby
module UTF8
|
|
##
|
|
# Checks that a string is valid UTF-8 by trying to convert it to UTF-8
|
|
# using the iconv library, which is in the standard library.
|
|
if String.new.respond_to?("valid_encoding?")
|
|
def self.valid?(str)
|
|
return true if str.nil?
|
|
return str.valid_encoding?
|
|
end
|
|
else
|
|
require 'iconv'
|
|
|
|
def self.valid?(str)
|
|
return true if str.nil?
|
|
Iconv.conv("UTF-8", "UTF-8", str)
|
|
return true
|
|
rescue
|
|
return false
|
|
end
|
|
end
|
|
end
|