On 6 jul 2011, at 15:09, dmitry zhelnin wrote:
. Как такое может быть?
Это потому что <insert лучи уничтожающей ненависти уродам которые делают интерпретаторы со сменными кодировками строк>.
Потому что
irb(main):006:0> Encoding.default_internal
=> #<Encoding:UTF-8>
irb(main):007:0> foo = "abcdef"
=> "abcdef"
irb(main):008:0> foo.encoding
=> #<Encoding:UTF-8>
irb(main):009:0> random = SecureRandom.hex(123)
=> "скипано"
irb(main):010:0> random.encoding
=> #<Encoding:ASCII-8BIT>
irb(main):011:0> SecureRandom.methods - Object.methods
=> [:random_bytes, :hex, :base64, :urlsafe_base64, :random_number, :uuid, :lastWin32ErrorMessage]
irb(main):012:0> SecureRandom.base64(23)
=> "W0CcuAAFtq3eeufq6BapT3sGlsAGKIY="
irb(main):013:0> SecureRandom.base64(23).encoding
=> #<Encoding:US-ASCII>
irb(main):014:0> SecureRandom.base64(23).encoding
=> #<Encoding:US-ASCII>
То есть эта сволочь возвращает ну ВСЕ кроме собственно строки в utf8.
Я не знаю как sqlite3-ruby там изгаляется с перекодированием этой строки но что-то мне подсказывает что хреново изгаляется.
А теперь хитрость. Тот кто подыграет линию "нефиг юзать руби 192" и "какие японцы сволочи" не участвует в дискуссии конструктивно. А тот кто пойдет и зафайлит
японцам issue на него - тому конфетка.
Комментариев нет:
Отправить комментарий