Potlatch 2 localisation updates
[rails.git] / lib / utf8.rb
index 5f0d219baa10293e104fb7decfa916ac0ea79100..c6e1918afb198b26a245325796624718a3d1f856 100644 (file)
@@ -2,13 +2,20 @@ 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.
-  def self.valid?(str)
-    return true if str.nil?
-    Iconv.conv("UTF-8", "UTF-8", str)
-    return true
-    
-  rescue
-    return false
-  end  
-end
+  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