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

  • Eddie Bravo

    Eddie Bravo

    17 EKİM 2006
  • NightShader1

    NightShader1

    25 Temmuz 2006
  • Videogamerz | Call of Duty

    Videogamerz

    5 NİSAN 2012