Delphi 2009中的Unicode控制台应用程序

10 delphi unicode console delphi-2009

如何使用Delphi 2009创建unicode控制台应用程序?

如果我喜欢这样:

{$APPTYPE CONSOLE}
uses
  SysUtils;
begin
  writeln('öü??ç ???????');
end.
Run Code Online (Sandbox Code Playgroud)

我得到以下内容:

ougsc ???????
Run Code Online (Sandbox Code Playgroud)

Ond*_*lle 11

Writeln在Delphi 2009中仍然使用ANSI(参见System TTextRec),但您可以使用UTF8Encode并通过调用SetConsoleOutputCP(CP_UTF8)将控制台的输出代码页更改为UTF8.您还需要一个好的字体来实际显示Unicode字符.


mgh*_*hie 9

我不确定这是你所追求的,但你可以使用Windows API函数在所有32位Delphi版本中创建Unicode控制台应用程序.我刚试过Delphi 4:

program test;

{$APPTYPE CONSOLE}

uses
  Windows;

var
  s: WideString;
  i: integer;
  Written: Cardinal;
begin
  SetLength(s, 80);
  for i := 1 to 80 do
    s[i] := WideChar(48 + i);
  WriteConsoleW(GetStdHandle(STD_OUTPUT_HANDLE), PWideChar(s), 80, Written,
    nil);
end.
Run Code Online (Sandbox Code Playgroud)

我没有Delphi 2009来尝试如何在编辑器中输入Unicode字符串...


Too*_*the 5

你不能(至少没有标准库).控制台功能是Delphi 2009中唯一的非Unicode功能.