I have table with string field containing characters with accents. When I run query from the client I get everything ok. If I call a service, read same data and return .AllData to the client, some of the accented letters loose accent. For example Š, Đ are returned as expected, but Č and Ć are both returned as letter C.
On the server side I’m using all default settings in kbmMWFireDACQuery and kbmMWBinaryStreamFormat.
Code is simple:
kbmMWFireDACQuery1.Query.Text := ‘select …’;
result := kbmMWFireDACQuery1.AllData;
That sounds odd. Can you provide me with the smallest possible sample app with source, showing the problem so I can investigate.
Under the hood, strings are written using TWriter.WriteString and read using TReader.ReadString which conditionally either writes the data as ASCII, UTF8 or 2 byte unicode (UTF-16/UCS-2).
UTF-16 actually do not support the complete unicode character set, why that could be the side effect seen?