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

  • ☆ SUB4SUB CENTER! ☆ spam here

    ☆ SUB4SUB

    22 ŞUBAT 2010
  • LG Mobile Global

    LG Mobile Gl

    2 EYLÜL 2010
  • MysteryGuitarMan

    MysteryGuita

    16 HAZİRAN 2006