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

  • Friday Night Cranks

    Friday Night

    27 Mayıs 2007
  • NYCarspotter

    NYCarspotter

    26 EYLÜL 2011
  • Rachel Talbott

    Rachel Talbo

    26 Ocak 2011