Nobuaki Sukegawa created THRIFT-3364:
----------------------------------------

             Summary:   Fix ruby binary field encoding in TJSONProtocol
                 Key: THRIFT-3364
                 URL: https://issues.apache.org/jira/browse/THRIFT-3364
             Project: Thrift
          Issue Type: Sub-task
          Components: Ruby - Library
    Affects Versions: 0.9.3
            Reporter: Nobuaki Sukegawa


Ruby JSON protocol uses pack('m') method to encode Base64 string.
It seems that it inserts a "\n" character every 60 characters.

You can refer to these pages for this behavior.
http://stackoverflow.com/questions/2620975/strange-n-in-base64-encoded-string-in-ruby
http://ruby-doc.org/stdlib-2.2.3/libdoc/base64/rdoc/Base64.html
{quote}
Line feeds are added to every 60 encoded characters.
{quote}

This has been making it impossible to send long binary field data to other 
languages.
I fixed this by using alternative encode method that is added in Ruby 1.9 
(which should be OK).

After the fix, I had to add Ruby namespace to DebugProtoTest.thrift to avoid 
name collision of "Base64" symbols that is used for new encode method and also 
as DebugProtoTest message name.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to