0

Thinを使用して実行する単純なラックベースのrubyサーバーがあります。次のようになります。

#encoding: utf-8

class Auth

  def initialize(app)
    @app = app
  end

  def call(env)
    @request = Rack::Request.new(env).params
    command = @request['command']

    begin
      command.tr!('٠١٢٣٤٥٦٧٨٩','0123456789')  
    rescue Exception => e
      $LOG.error e.to_s    
    end
  end
end

ご覧のとおり、数字をアラビア語から英語に変換することになっています。とにかく、paramコマンド "١"を送信すると、次のエラーが発生します。

incompatible character encodings: ASCII-8BIT and UTF-8
4

1 に答える 1

1
command("١".force_encoding('UTF-8'))

Ruby 1.9/2.0 でのエンコーディングの詳細については、http: //yehudakatz.com/2010/05/05/ruby-1-9-encodings-a-primer-and-the-solution-for-rails/も参照してください。

于 2013-03-11T18:42:07.057 に答える