[ 
https://issues.apache.org/jira/browse/QPID-3695?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jimmy Jones updated QPID-3695:
------------------------------

    Attachment: hello_world2.pl

Script to demonstrate the problem
                
> In the Perl binding there doesn't appear to be a way to set the encoding of 
> header properties to UTF8.
> ------------------------------------------------------------------------------------------------------
>
>                 Key: QPID-3695
>                 URL: https://issues.apache.org/jira/browse/QPID-3695
>             Project: Qpid
>          Issue Type: Bug
>          Components: Interop Testing
>    Affects Versions: 0.12
>         Environment: Perl
>            Reporter: Fraser Adams
>         Attachments: hello_world2.pl
>
>
> There have been some interoperability issues reported between Java/C++/Perl 
> whereby there is sometimes a mismatch between C++ qpid::messaging client 
> defaults of binary strings and expected UTF8 Strings - especially noticeable 
> with headers exchange matching.
> One of the most significant issues is with the qpid::messaging AddressParser 
> which is resolved here:
> https://issues.apache.org/jira/browse/QPID-3492
> However with qpid::messaging producers one must also be careful to call 
> setEncoding("utf8") when setting string properties.
> This is OK with C++ qpid::messaging as long as one is aware of the potential 
> issue however there's a more significant issue with the Perl binding, which 
> is a SWIG wrapper around qpid::messaging. This "transparently" maps Perl 
> strings into binary strings and there doesn't appear to be any way to 
> explicitly set the encoding as the Variant type implementation is abstracted 
> away in Perl.
> The following trivial snippet allows a UTF8 property to be set on a Message:
> /*
>     This method properly encodes the value parameter as a UTF8 Variant type 
> then sets the Property 
>     on the Message passed in as a parameter.
> */
> void setUtf8Property(Message& message, const char* key, const char* value) {
>     Variant utf8Value(value);
>     utf8Value.setEncoding("utf8");
>     message.setProperty(key, utf8Value);
> }
> Obviously to be of any use in the Perl binding it would need to be added to 
> the SWIG interface.
> Perhaps there's another way to set Message properties as UTF8 from the Perl 
> binding?

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org

Reply via email to