SORU
12 NİSAN 2010, PAZARTESİ


Ruby base64 kodlanmış dize garip \n

Dahili Base64 kütüphane Ruby ekleyerek '\n. Nedeni bulmak mümkün değil. Bu özel bir örnek:

irb(main):001:0> require 'rubygems'
=> true
irb(main):002:0> require 'base64'
=> true
irb(main):003:0> str =  "1110--ad6ca0b06e1fbeb7e6518a0418a73a6e04a67054"
=> "1110--ad6ca0b06e1fbeb7e6518a0418a73a6e04a67054"
irb(main):004:0> Base64.encode64(str)
=> "MTExMC0tYWQ2Y2EwYjA2ZTFmYmViN2U2NTE4YTA0MThhNzNhNmUwNGE2NzA1\nNA==\n"

\N sonundan geçen ve 6 konumunda. Kod çözücü (Base64.decode64) döndürür eski dize mükemmel bir şekilde geri döndü. Tuhaf şey, bu \n kodlanmış dizesi için herhangi bir değer taşımayan. Ben çıktısından yeni satır dize kaldırmak, dekoder yine mükemmel bir şekilde çözer.

irb(main):005:0> Base64.decode64(Base64.encode64(str).gsub("\n", '')) == str
=> true

Bu daha çok, başka bir JS Kütüphanesi aynı dizge base64 kodlanmış çıktıyı üretmek için kullanılan, çıkış \n olmadan geliyor.

Bu bir hata veya başka bir şey var mı? Herkesten önce bu sorunla karşı karşıya kaldı?

BİLGİNİZE,

$ ruby -v
ruby 1.8.7 (2008-08-11 patchlevel 72) [i486-linux]

CEVAP
13 Ocak 2011, PERŞEMBE


Ruby-1.9.2 Base64 var.sonunda O \n (yeni satır) eklemek değil strict_encode64.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jonathan D.

    Jonathan D.

    3 Kasım 2006
  • midomansour

    midomansour

    19 EYLÜL 2009
  • Simon Hayter

    Simon Hayter

    20 HAZİRAN 2010