Rails gsub 方法从 NumberHelper 显示符号直到 unicode '\u20B8' 但未能显示任何符号 '\u20B9'。
导轨 - 3.0.5红宝石 - 1.9.2-p0
在 Rails 控制台中,执行以下操作:
ruby-1.9.2-p0 > value = "123.45"
=> "123.45"
ruby-1.9.2-p0 > unit = "u20B9"
=> "u20B9"
ruby-1.9.2-p0 > puts unit
₹
=> nil
ruby-1.9.2-p0 > format = "%u %n"
=> "%u %n"
ruby-1.9.2-p0 > format.gsub(/%n/, value).gsub(/%u/, rup)
=> "u20B9 123.45"
ruby-1.9.2-p0 > format.gsub(/%n/, value).gsub(/%u/, "u20B8")
=> "₸ 123.45"
ruby-1.9.2-p0 >
请告知为什么 gsub 会有这种行为?
我不明白问题是什么。 它完全按照您的预期进行。 IRB 向您显示#inspect
输出,该输出生成带有引号和 unicode 转义序列的字符串。 只需puts
它即可实际看到它的渲染:
>> unit = "u20B9"
=> "₹"
>> value = "123.45"
=> "123.45"
>> format = "%u %n"
=> "%u %n"
>> puts format.gsub(/%n/, value).gsub(/%u/, unit)
₹ 123.45
=> nil
以上直接来自撬动会议。
编辑 |另请注意,您对#gsub
的使用很奇怪。 您可以使用格式字符串来执行操作:
>> puts "%s %.2f" % [unit, value]
=> ₹ 123.45