wake-up-neo.com

Unicode-Zeichen für Ruby-Ausgabe

Ich bin kein professioneller Ruby-Entwickler, aber ich verwende Capistrano für PHP -Einstellungen. Ich versuche, die Ausgabe meines Skripts aufzuräumen, und ich versuche, ein Unicode-Häkchen wie in dieses Blog diskutiert - hinzuzufügen.

Das Problem ist, wenn ich:

checkmark = "\u2713"
puts checkmark

Es gibt "\ u2713" anstelle von ✓ aus

Ich habe gegoogelt und kann einfach nirgendwo etwas finden, das das bespricht. 

TLDR: Wie puts oder print das Unicode-Häkchen U-2713?

EDIT


Ich verwende Ruby 1.8.7 auf meinem Mac (OSX Lion) und kann daher die Methode encode nicht verwenden. Meine Shell ist Bash in iTerm2.

34
Jeremy Harris

In Ruby 1.9.x +

Verwenden Sie String#encode :

checkmark = "\u2713"
puts checkmark.encode('utf-8')

druckt

In Ruby 1.8.7

puts '\u2713'.gsub(/\\u[\da-f]{4}/i) { |m| [m[-4..-1].to_i(16)].pack('U') }
✓
43
falsetru

falsetru's Antwort ist falsch.

checkmark = "\u2713"
puts checkmark.encode('utf-8')

Dadurch wird das Häkchen von der aktuellen Systemcodierung in UTF-8-Codierung umcodiert. (Dies funktioniert nur auf einem System, dessen Standardwert bereits UTF-8 ist.)

Die richtige Antwort ist:

puts checkmark.force_encoding('utf-8')

Dadurch wird die Codierung der Zeichenfolge geändert, ohne dass eine Zeichenfolge geändert wird.

15
zw963

In neueren Ruby-Versionen müssen Sie keine Kodierung erzwingen. Hier ist ein Beispiel mit 2.1.2:

2.1.2 :002 > "\u00BD"
 => "½"

Stellen Sie einfach sicher, dass Sie doppelte Anführungszeichen verwenden!

11
sixty4bit

Wenn Sie ein Emoji drucken möchten, müssen Sie es zusätzlich mit geschweiften Klammern umgeben.

irb(main):001:0> "\u{1F600}"
=> "????"
0
Blubber

Dasselbe wie in ERB wie oben beschrieben, keine erzwungene Kodierung erforderlich, funktioniert einwandfrei, getestet mit Ruby 2.3.0

    <%= "\u00BD" %>

Viel Anerkennung

0
crystallinering