[ https://issues.apache.org/jira/browse/THRIFT-1229?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13781650#comment-13781650 ]
James Haggerty commented on THRIFT-1229: ---------------------------------------- Just went to use this today, and found that it doesn't check for is_binary (i.e. so binary type things get utf-8ed, which tends to fail...). I would suggest a better approach is to pass a bool as one of the typeargs in the thrift_spec, and if that is True then utf-8 encode/decode should be done on the string (if binary, it would never be true; if a string, it would only be true with utf8-strings set). > 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 > > > #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#6144)