Uploaded image for project: 'Thrift'
  1. Thrift
  2. THRIFT-1224

Cannot insert UTF-8 text

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Duplicate
    • Affects Version/s: 0.6
    • Fix Version/s: 0.9
    • Component/s: Ruby - Library
    • Environment:

      Ruby 1.9.2, Cassandra 0.8, thrift_client gem 0.6.2, cassandra gem 0.11.1

      Description

      I can't seem to find a way to save UTF-8 data into Cassandra.

      I'm using the cassandra gem 0.11.1 (https://github.com/fauna/cassandra/) which in turn uses thrift_client (0.6.2), which in turns uses the thrift library (0.6.0).

      As an example, the following code[1]

      cassandra.insert(:Cache, "123", {"unicode string" => "รค"})

      will raise an exception:

      Encoding::CompatibilityError: incompatible character encodings: ASCII-8BIT and UTF-8

      The stacktrace points to `thrift-0.6.0/lib/thrift/transport/framed_transport.rb:58`. What seems to be happening is that `@wbuf` is encoded as ASCII-8BIT, while `buf` is encoded as UTF-8, which causes the concatenation operation (<<) to fail with the exception above.

      This issue might be connected to https://issues.apache.org/jira/browse/THRIFT-1023.

      [1] Of course, this assumes a "cassandra" object created using the cassandra gem and a schema inizialized with a column family called "Cache"

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                jfarrell Jake Farrell
                Reporter:
                simbul Alessandro Morandi
              • Votes:
                0 Vote for this issue
                Watchers:
                6 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: