[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