String and Character Encodings in the C/Java API.

String and Character Encodings in the C/Java API.

book

Article ID: KB0090481

calendar_today

Updated On:

Products Versions
TIBCO Rendezvous -
Not Applicable -

Description

Resolution:
Description:
= = = = = = =

1). C/C++ API -  There is no encoding tag in RV messages. The C and C++ libraries do not do any character set translation, so what you send is what you get.

2). Java API -  There is no encoding tag in the RV message either. Before sending an outbound message, Rendezvous software translates these strings into the bytes according to the locale when you update/create the message. Conversely, when extracting a string from an inbound message, Rendezvous translates it  according  to the locale of the process when receiving the message. If the locale used by the sending application is different from the locale used by receiving application, the data received could be wrong.

3). In the following requirement:
&ltA: sender_utf-8>  ==> &ltB: listener_for_sender_utf-8 & sender_iso-8859-1>  ==> &ltC: listener_iso-8859-1>

If the application in step B is C code, again here C and C++ libraries do not do any character set translation, so what you send is what you get. If you need iso-8859-1 encoding, you just need to convert the received message from UTF-8  to iso-8859-1 in step B/C. If the application in step B is Java code, you should use UTF-8 to get the correct data. You could send it out with Opaque byte[] instead of a String in iso-8859-1 encoding, or convert it yourself in step C.

Issue/Introduction

String and Character Encodings in the C/Java API.