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

  • hidetake takayama

    hidetake tak

    3 Mart 2009
  • Michelle Phan

    Michelle Pha

    18 Temmuz 2006
  • TotalSeminarsChannel

    TotalSeminar

    16 Mart 2010