0

我正在使用 Prawn PDF 处理 PDF 发票。我number_to_currency在通过unit.

def line_item_rows
 [["Description", "Qty", "Unit Price", "Price GBP"]] +
 @invoice.line_items.map do |item|
  [item.name, item.quantity, price(item.unit_price), price(item.full_price)]
 end
end

@view.number_to_currency(num, :unit => "£")

以上导致错误:

syntax error, unexpected $end, expecting ')'
@view.number_to_currency(num, :unit => "£")
                                          ^):

如果我使用 HTML 值,它只会输出原始 html:

@view.number_to_currency(num, :unit => "£")
Total £2,266.00

使用 Prawn PDF 时是否有特殊的添加 £ 的方法?上述尝试在使用 html/erb 时效果很好,但在使用 Prawn PDF 时效果不佳。

4

1 回答 1

3

Ruby 可能不会将您的源文件视为 utf-8:

# encoding: US-ASCII <-- it's defaulting to this
puts "£"

所以当它编译时:

$ ruby foo.rb 
foo.rb:2: invalid multibyte char (US-ASCII)
foo.rb:2: invalid multibyte char (US-ASCII)
foo.rb:2: syntax error, unexpected $end, expecting ')'
puts("£")
        ^

在文件顶部添加编码提示:

# encoding: utf-8
puts("£")

它应该运行:

$ ruby foo.rb 
£
于 2013-04-03T23:38:23.567 回答