Я вынужден работать с Ruby в Windows 7 (Home Premium), и у меня было много проблем с кодированием. Пока я не нуждался в консольном вводе, я был довольно хорош, но теперь я в тупике.
Я использую Powershell ISE и выполнил команду chcp 65001
, чтобы сделать его utf-8. Тем не менее, мой вклад в программы ruby несовместим с тем, что находится внутри Ruby. Я установил Ruby с RubyInstaller 1.9.3.
Хорошо, в чем проблема?
Я написал короткий пример:
# encoding: UTF-8
target = ARGV[0]
puts "string constant ="+ "dupą"
puts "dupą".bytes.to_a.to_s
puts "dupą".encoding
puts "target =" +target
puts target.bytes.to_a.to_s
puts target.encoding
puts target.eql? "dupą"
Хорошо, теперь давайте запустим этот пример:
PS C:\Users\user\ruby\2> ruby example.rb dupą
string constant =dupą
[100, 117, 112, 196, 133]
UTF-8
target =dup�
[100, 117, 112, 185]
UTF-8
false
Таким образом, байты в двух одинаковых строках различны, но, тем не менее, они оба распознаются как UTF-8.
Очевидно, я что-то упустил. Чего мне не хватает?