46

私は本業の Ruby 開発者ではありませんが、PHP のデプロイに Capistrano を使用しています。このブログで説明されているように、スクリプトの出力をクリーンアップし、 Unicode チェック マークを追加しようとしています。

問題は、私が行う場合です:

checkmark = "\u2713"
puts checkmark

✓の代わりに「\u2713」を出力します</p>

私はグーグルで検索しましたが、これについて議論している場所が見つかりません。

TLDR: Unicode チェックマーク U-2713 はどうすればputsよいですか?print

編集


Mac (OSX Lion) で Ruby 1.8.7 を実行しているため、このencode方法を使用できません。私のシェルは iTerm2 の Bash です。


更新[2019 年 4 月 8 日] サイトがダウンした場合の参考画像を追加しました。

Unicode チェックマーク U+2713

4

6 に答える 6

18

falsetru の答えは正しくありません。

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

これにより、チェックマークが現在のシステム エンコーディングから UTF-8 エンコーディングにトランスコードされます。(これは、デフォルトが既に UTF-8 であるシステムでのみ機能します。)

正解は次のとおりです。

puts checkmark.force_encoding('utf-8')

これにより、文字シーケンスを変更せずに、文字列のエンコーディングが変更されます。

于 2014-12-10T15:23:01.323 に答える
17

Ruby の新しいバージョンでは、エンコーディングを強制する必要はありません。を使用した例を次に示し2.1.2ます。

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

必ず二重引用符を使用してください。

于 2016-04-22T16:39:42.740 に答える