[Lazarus] Garbage writing to console
Luca Olivetti
luca at wetron.es
Fri Feb 23 08:36:54 CET 2018
El 22/02/18 a les 22:26, Ondrej Pokorny via Lazarus ha escrit:
> On 22.02.2018 12:21, Luca Olivetti via Lazarus wrote:
>> Lazarus 1.8.0, fpc 3.0.4, windows application (with "win32 gui
>> application unchecked") or console application (using LazUTF8).
>> File encoding utf-8 without bom.
>>
>> writeln('áéí')
>>
>> produces garbage, contrary to what's said in
>> http://wiki.freepascal.org/Unicode_Support_in_Lazarus#Writing_to_console
>
> No, it's not contrary - just the opposite. The problem is that áéí (ANSI
> 1250 or whatever) have different codes to your console codepage (CP437
> or whatever). You should open/edit your program source code in your
> console codepage - you obviously edit it in ANSI.
Uh? It's utf-8
"When you convert the code to UTF-8, for example by using Lazarus'
source editor popup menu item File Settings / Encoding / UTF-8 and
clicking on the dialog button "Change file on disk", the ╩ becomes 3
bytes (#226#149#169), so the literal becomes a string. *The procedures
write and writeln convert the UTF-8 string to the current console
codepage*. So your console program now outputs the '╩' on Windows with
any codepage (i.e. not only CP437) and it even works on Linux and Mac OS X."
Bye
--
Luca Olivetti
Wetron Automation Technology http://www.wetron.es/
Tel. +34 93 5883004 (Ext.3010) Fax +34 93 5883007
More information about the Lazarus
mailing list