[ https://issues.apache.org/jira/browse/IGNITE-3140?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15285021#comment-15285021 ]
Igor Sapego commented on IGNITE-3140: ------------------------------------- Denis, C++ uses UTF-8 encoding right now and as long as Java and .NET nodes would write strings in UTF-8 we are not going to have any problems with deserialization. On the C++ side we just copy those received string bytes without performing any complex processing and use it as string. As long as it is valid UTF-8 data (and in our Binary protocol it is) everything is going to work just fine. > C++: UTF-16 surrogate symbols are not serialized properly > --------------------------------------------------------- > > Key: IGNITE-3140 > URL: https://issues.apache.org/jira/browse/IGNITE-3140 > Project: Ignite > Issue Type: Bug > Components: platforms > Affects Versions: 1.5.0.final > Reporter: Denis Magda > Assignee: Vladimir Ozerov > Fix For: 1.6 > > > There is an issue with serialization of a surrogate symbol with > {{BinaryMarshaller}}. On Java side String's serialization logic was improved > to support all the cases. Refer to IGNITE-3098. > C++ serialization logic has to be updated as well. Please refer to the > algorithm located in ignite-3098 branch in the following places: > - {{BinaryUtils.utf8BytesToStr}} - serialization > - {{BinaryUtils.strToUtf8Bytes}} - deserialization > - > {{IgniteSystemProperties.IGNITE_BINARY_MARSHALLER_USE_STRING_SERIALIZATION_VER_2}} > controls which version of serialization logic to use (old or new). -- This message was sent by Atlassian JIRA (v6.3.4#6332)