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



--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to