ya2yaml против params - PullRequest
       1

ya2yaml против params

0 голосов
/ 10 июня 2011

Я работаю с Rails 3 и ya2yaml, и у меня возникла проблема с кодировкой, когда я пытаюсь преобразовать хэш параметров в yaml. Ключи для хэша params хранятся как ASCII-8BIT , а значения сохраняются как UTF-8 . Это создает проблему, так как ya2yaml не любит ASCII, и если вы попытаетесь сгенерировать yaml из строки ASCII, используя ya2yaml, вы получите следующее:

--- 
? !binary |
    b25l

: "some_value"

Вместо этого:

--- 
someKey : "some_value"

Blech. Кто-нибудь знает, как обойти это в ya2yaml, или заставить ключи и значения хеша использовать ту же кодировку?

1 Ответ

0 голосов
/ 11 июня 2011

В итоге я просто написал метод, который дублировал хэш параметров и закодировал ключи и значения в UTF-8:

  def utf8_hash(some_hash) # convert hash key & values to utf-8 for proper translation
    new_hash = Hash.new
    some_hash.each do |key, value|
      new_hash[key.to_s.encode(Encoding::UTF_8)] = value.to_s.encode(Encoding::UTF_8)
    end    
    new_hash
  end

  utf8_hash(params).ya2yaml
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...