Ruby에 내장 된 Base64 라이브러리에 '\ n'이 추가되었습니다. 이유를 찾을 수 없습니다. 이 특별한 예를 들어 :
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은 끝에서 마지막과 6 번째 위치에 있습니다. 디코더 (Base64.decode64)는 이전 문자열을 완벽하게 되돌립니다. 이상한 것은 \ n은 인코딩 된 문자열에 값을 추가하지 않는다는 것입니다. 출력 문자열에서 줄 바꿈을 제거하면 디코더가 완벽하게 다시 디코딩합니다.
irb(main):005:0> Base64.decode64(Base64.encode64(str).gsub("\n", '')) == str
=> true
이 외에도 다른 JS 라이브러리를 사용하여 동일한 입력 문자열의 base64 인코딩 출력을 생성했습니다. 출력에는 \ n이 없습니다.
이것은 버그입니까 아니면 다른 것입니까? 전에이 문제에 직면 한 사람이 있습니까?
참고로,
$ ruby -v
ruby 1.8.7 (2008-08-11 patchlevel 72) [i486-linux]