Ich habe ein Problem. Schauen wir uns:Ruby-Kompatibilität Fehler Codierung
C: \ temp> Rubin script.rb
script.rb => Powershell output
puts "ę" => ę #irb \xA9
puts "\xA9" => ▯
puts "ę"=="\xA9" => false
input = $stdin.gets.chomp => input=="ę"
puts "e#{input}e" => eęe
puts "ę"==input => false
puts "ę#{input}" => Encoding::Compatibility Error Utf8 & CP852
irb => #command line in ruby
puts "ę"=="\xA9" => true
input = $stdin.gets.chomp => input=="ę"
puts "ę"==input => true && "\xA9"==input => true
puts "ę#{input}" => ęę
Es sieht aus wie Eingabe des Powershell für alle Sonderzeichen als Rubin andere Schriftart verwendet und Notepad ++ (?). Kann ich das ändern, so dass es funktioniert, wenn ich Eingabeaufforderung eingabe (wenn gefragt) und keinen Fehler anzeigt?
Edit: Sorry für die Irreführung. Ich habe invoke hinzugefügt und angegeben, dass die Datei die Erweiterung ".rb" hat nicht ".txt"
Edit2: Ok, ich habe einige weitere Informationen recherchiert und ich habe versucht, einige Codierung (UTF8) zu einer Variablen. Etwas Seltsames ist passiert.
puts "ę#{input.encoding}" => ęCP852
puts "\xA9" => UTF-8
Codierung zu CP852 hat ergeben, dass die Codierung Bytes weitergeben. Ich habe gelernt, dass der Wert von "ê" = 20 + 99 = 119, "±" = 20 + 85, 20 = C4
Ok. habe es ".encoding" - zeigt, welche Codierung ich verwende. Und das löst dieses Problem.
puts "ę#{input.encode "UTF-8"}" => ęę
Vielen Dank für Ihre Eingabe.
Google kann Sie erklären, wie Sie diese anders aufrufen? Wo passt Powershell genau? – briantist
Ich habe bearbeitet. Unter Powershell-Ausgabe ist Powershell-Ausgabe. – Serian
FYI: In UTF-8 ist der Hexadezimalcode von '" ê "' '0x119'. '" \ u {00A9} "' ist '" © "'. Ihre Powershell scheint in CP852 zu funktionieren (Hallo, Windows!) – mudasobwa