Jump to page: 1 2
Thread overview
[Issue 1448] UTF-8 output to console is seriously broken
Oct 25, 2014
Vladimir Panteleev
Oct 25, 2014
Vladimir Panteleev
Oct 25, 2014
Sum Proxy
Feb 09, 2016
Martin Krejcirik
Apr 04, 2016
Martin Krejcirik
Oct 14, 2016
Martin Krejcirik
Nov 30, 2016
Martin Krejcirik
Jun 13, 2019
kinke@gmx.net
Jun 15, 2019
kinke
Aug 12, 2019
RazvanN
Aug 12, 2019
kinke
Oct 24, 2019
RazvanN
Dec 17, 2022
Iain Buclaw
Jun 20, 2023
Walter Bright
October 25, 2014
https://issues.dlang.org/show_bug.cgi?id=1448

Vladimir Panteleev <thecybershadow@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           See Also|                            |https://issues.dlang.org/sh
                   |                            |ow_bug.cgi?id=2742

--
October 25, 2014
https://issues.dlang.org/show_bug.cgi?id=1448

Vladimir Panteleev <thecybershadow@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           See Also|                            |https://issues.dlang.org/sh
                   |                            |ow_bug.cgi?id=12990

--
October 25, 2014
https://issues.dlang.org/show_bug.cgi?id=1448

Sum Proxy <sum.proxy@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |sum.proxy@gmail.com
           Hardware|x86_64                      |x86

--- Comment #12 from Sum Proxy <sum.proxy@gmail.com> ---
The issue still exists in DMD32 D Compiler v2.065, Windows 7

==============
Code:
==============
import std.stdio;
import std.c.windows.windows;

extern(Windows) BOOL SetConsoleOutputCP( UINT );

void main() {
    SetConsoleOutputCP( 65001 ); // or use "chcp 65001" instead
    stderr.write("STDERR:Output utf-8 accented char \u00e9\n... and the rest is
cut off!\n");
    stderr.write("end_STDERR.\n");
}
==============
Output:
==============
STDERR:Output utf-8 accented char é
... and the rest is cut off!

==============

end_STDERR.\n is not written

--
February 09, 2016
https://issues.dlang.org/show_bug.cgi?id=1448

--- Comment #13 from Martin Krejcirik <mk@krej.cz> ---
Final note, as this is unlikely to be fixed: use -m32mscoff and Microsoft VS linker.

--
April 04, 2016
https://issues.dlang.org/show_bug.cgi?id=1448

Martin Krejcirik <mk@krej.cz> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           See Also|                            |https://issues.dlang.org/sh
                   |                            |ow_bug.cgi?id=15845

--
October 14, 2016
https://issues.dlang.org/show_bug.cgi?id=1448

Martin Krejcirik <mk@krej.cz> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           See Also|                            |https://issues.dlang.org/sh
                   |                            |ow_bug.cgi?id=15761

--
November 30, 2016
https://issues.dlang.org/show_bug.cgi?id=1448

--- Comment #14 from Martin Krejcirik <mk@krej.cz> ---
Partial fix or workaround in druntime for unhandled exceptions: https://github.com/dlang/druntime/pull/1687

--
June 13, 2019
https://issues.dlang.org/show_bug.cgi?id=1448

kinke@gmx.net changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |kinke@gmx.net

--- Comment #15 from kinke@gmx.net ---
Still an issue, but apparently restricted to stderr (and independent from
DigitalMars/MS runtime):

```
import core.stdc.stdio;
import core.sys.windows.wincon, core.sys.windows.winnls;

void main()
{
    const oldCP = SetConsoleOutputCP(CP_UTF8);
    scope(exit) SetConsoleOutputCP(oldCP);

    fprintf(stdout, "HellöѬ LDC\n");
    fflush(stdout);

    fprintf(stderr, "HellöѬ LDC\n");
    fflush(stderr);
}
```

=>

```
HellöѬ LDC
Hell
```

Tested with DMD 2.086.0 (-m32, -m32mscoff, -m64) and LDC on Win10.

--
June 15, 2019
https://issues.dlang.org/show_bug.cgi?id=1448

--- Comment #16 from kinke <kinke@gmx.net> ---
Update: it's working with Win10 v1903 (with the exact same binary that didn't
work with v1803). According to Rainer Schütze, it's working since v1809. See
https://devblogs.microsoft.com/commandline/windows-command-line-unicode-and-utf-8-output-text-buffer/.

--
August 12, 2019
https://issues.dlang.org/show_bug.cgi?id=1448

RazvanN <razvan.nitu1305@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |razvan.nitu1305@gmail.com

--- Comment #17 from RazvanN <razvan.nitu1305@gmail.com> ---
(In reply to kinke from comment #16)
> Update: it's working with Win10 v1903 (with the exact same binary that didn't work with v1803). According to Rainer Schütze, it's working since v1809. See https://devblogs.microsoft.com/commandline/windows-command-line-unicode-and- utf-8-output-text-buffer/.

So is this issue fixed? I don't have a windows machine to test it. Should we close this?

--
« First   ‹ Prev
1 2