# File mconv.rb, line 166 def Mconv.guess_charset_list(str) case str when /\A\xff\xfe/; return ['utf-16le'] when /\A\xfe\xff/; return ['utf-16be'] end count = {} CharsetTable.each {|name, regexp| count[name] = 0 } str.scan(/\S+/n) {|fragment| CharsetTable.each {|name, regexp| count[name] += 1 if regexp =~ fragment } } max = count.values.max count.reject! {|k, v| v != max } return count.keys if count.size == 1 return ['us-ascii'] if count['us-ascii'] # xxx: needs more accurate guess Preference.reject {|name| !count[name] } end