Anton Kavalenka wrote 47 lines
On 09.04.2013 18:07, Leonardo M. Ram? wrote:
>On 2013-04-09 15:28:56 +0100, Martin wrote:
>>On 09/04/2013 15:22, Leonardo M. Ram? wrote:
>>>On 2013-04-09 15:20:33 +0100, Martin wrote:
>>>>On 09/04/2013 15:11, Leonardo M. Ram? wrote:
>>>>>Hi, I'm working with a "C" shared library that returns a pointer to
>>>>>char. It's all ok when not using special characters such as "?" or
>>>>>accents, but when I get these, they are replaced by "?" signs.
>>>>>
>>>>>For example, if I receive an "?", the debugger shows this:
>>>>>
>>>>>lStr := 'A'#209'oranza';
>>>>>
>>>>>The correct string is:
>>>>>
>>>>>lStr := 'A?oranza';
>>>>>
>>>>>What can I do to show accented characters?.
>>>>>
>>>>It's a known problem and already reported. here is no fix available
>>>>yet. The debugger does can not yet display this.
>>>>
>>>>Actually it is 2 problems.
>>>>1) is the "?"
>>>>2) the other is #209 etc
>>>>
>>>Well, I can live with the debugger problem, but is there a solution for
>>>the "?" sign end displaying in my app?.
>>>
>>If you get an ansi string, you must convert it to utf8 before giving
>>it to the LCL
>>
>>need to find the exact function
>>
>>label.caption :- ansitoutf8(s) // assuming it is ansi in the system codepage
>>
>Yes, I've tried that, but it shows a box with an X inside where the ?
>should appear...
>
>My codepage is es_AR.UTF-8.
>
u:unicodestring;
u:=Putf8Char(buf); // or PAnsiChar depends on what your C DLL returns
label.caption:=u; // implicit cast
No, I've tried all kinds of combinations of ansitoutf8, unicodestring, etc, but nothing works, all returns "?" or the box with the X in the place of "?" or accents.