Я думаю, что это «cp1252», псевдоним «windows-1252».
Прочитав ответ Йорга, я вернулся на страницу Кодирование на ruby- doc.org пытался найти ссылки на конкретные кодировки, которые он упомянул, и тогда я заметил метод Encodings.aliases
.
Поэтому я забил метод в конце этого ответа.
Затем я посмотрел на вывод в блокноте ++, рассматривая его как «ANSI» и utf-8, и сравнил его с выводом в irb...
Я смог найти только два места в выводе irb, где файл utf-8 был искажен точно так же, как он отображался в блокноте ++ при просмотре его как «ANSI», и эти места были для cp1252 и cp1254.
cp1252, по-видимому, является моей кодировкой «файловой системы», поэтому я использую ее.
Я написал скрипт, чтобы сделать копии всех файлов, преобразованных в utf-8, пробуя как с 1252, так и с 1254.
Регулярные выражения utf-8 пока работают с обоими наборами файлов.
Теперь я должен попытаться вспомнить, что я на самом деле пытался достичь до того, как столкнулся со всеми этими головными болями с кодированием. хD
def compare_encodings file1, file2
file1_probs = []
file2_probs = []
txt = File.open('encoding_test_output.txt','w')
Encoding.aliases.sort.each do |k,v|
Encoding.default_external=k
ename = [k.downcase, v.downcase].join " --- "
s = ""
begin
s << "#{File.read(file1)}"
rescue
s << "nope nope nope"
file1_probs << ename
end
s << "\t| #{ename} |\t"
begin
s << "#{File.read(file2)}"
rescue
s << "nope nope nope"
file2_probs << ename
end
Encoding.default_external= 'utf-8'
txt.puts s.center(58)
puts s.center(58)
end
puts
puts "file1, \"#{file1}\" exceptions from trying to convert to:\n\n"
puts file1_probs
puts
puts "file2, \"#{file2}\" exceptions from trying to convert to:\n\n"
puts file2_probs
txt.close
end
compare_encodings "utf-8.txt", "np++'ANSI'.txt"
person
Owen_AR
schedule
19.04.2013