[ https://issues.apache.org/jira/browse/THRIFT-1229?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13865078#comment-13865078 ]
James Haggerty commented on THRIFT-1229: ---------------------------------------- I've attached what I think is a nicer approach. It also has the advantage of being backwards compatible. This is a couple of things cherry-picked out of our tree with some manual resolutions, so no guarantees that it actually works (or even compiles). > Python fastbinary.c can not handle unicode as generated python code > ------------------------------------------------------------------- > > Key: THRIFT-1229 > URL: https://issues.apache.org/jira/browse/THRIFT-1229 > Project: Thrift > Issue Type: Bug > Components: Python - Compiler, Python - Library > Affects Versions: 0.7 > Environment: mac osx 10.6 > Reporter: Favo > Attachments: python_fastbinary_utf8.patch, > python_fastbinary_utf8_binary.patch, thrift-1229-fastbinary-utf8-v3.patch > > > #THRIFT-395 > ([r959516|http://svn.apache.org/viewvc?view=revision&revision=959516]) fixed > python unicode support by adding a parameter to thrift command line for > py-generator. However this will not affect fastbinary.c. A normal generated > Read/Write function looks like below, notice that the function returned > before reach unicode handling logic. > {code:title=TType.py|borderStyle=solid} > def write(self, oprot): > if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and > self.thrift_spec is not None and fastbinary is not None: > oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, > self.thrift_spec))) > return > if self.ip is not None: > oprot.writeFieldBegin('ip', TType.STRING, 6) > oprot.writeString(self.ip.encode('utf-8')) > oprot.writeFieldEnd() > {code} > Any suggestion for this? -- This message was sent by Atlassian JIRA (v6.1.5#6160)