如何在控制台窗口中写入 Unicode 字符?我用谷歌搜索过,最常见的答案是使用UTF8String
或设置代码页,SetConsoleOutputCP
但我无法让它工作!丹麦字母 ø 显示不正确。
我确实读过这个问题: Writeln 能够支持 Unicode 吗?在发布我自己的问题之前,我确实尝试了代码。
一个小测试程序:
program Project1;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils, Winapi.Windows;
var
HolidayName: String;
begin
HolidayName := 'Palmesøndag'; // Palm Sunday in Danish
Writeln(HolidayName);
Writeln(UTF8String(HolidayName));
SetConsoleOutputCP(TEncoding.UTF8.CodePage);
Writeln(HolidayName);
Readln;
end.
结果是:
简而言之,我做错了什么?