, , , . Encoding.default_internal, , Encoding.default_external. , UTF-8. Encoding.default_internal , .
, , , . 100% , , ( ).
, ( ).
, , , 10 : https://github.com/oleander/rchardet . ruby system() linux, , - Linux file.
, , , , . , chardet , , , , X , .
require 'chardet19'
first1000bytes = File.read(file, 1000)
cd = CharDet.detect(first1000bytes)
cd.encoding
cd.confidence
, ruby :
str.valid_encoding?
, , :
orig_encoding = str.encoding
str.force_encoding("ISO-8859-1").valid_encoding?
str.force_encoding("UTF-8").valid_encoding?
str.force_enocding(orig_encoding)
, , , .
, valid_encoding?, . String.scrub ruby 2.1 pure -ruby backport String.scrub .
, , , .