0

我不知道如何在 Pascal 中设置 UTF-8。所以我需要写这封信:Š,Č,Ž 我不想使用这个版本:Č

4

1 回答 1

2

如果您保存 .pas 文件 utf-8 编码,则可以使用简单的字符串常量。

'Š,Č,Ž and I'

然后字符串以 utf-8 格式存储在内存中。


如果你使用 Lazarus/LCL,你可以像往常一样显示它,因为 LCL 在内部使用 utf-8

如果你使用 writeln 它可以工作,如果系统终端是 utf-8 编码的(例如在 linux 上)

否则,您需要在打印前转换字符串。您可以UTF8ToAnsi 为此使用 LCL。至少在 Linux 上。Windows 比较特殊,因为它在终端中使用了另一种编码,所以你需要 UTF8ToConsoleor SetConsoleOutputCP(CP_UTF8);,如果你想使用writeln.

如果要调用 Windows api 函数,可以使用UTF8ToAnsi调用旧的 A 变体,或UTF8Decode调用 W 变体。


(还有一个{$codepage utf8}选项可以将string-encoding设置为utf-8,但在当前版本中不应该使用它,因为它很奇怪并且会创建ucs-2和utf-8的混合)

于 2013-10-27T21:20:07.683 回答