在 Pascal 中使用 # 符号键入超过 127 范围的字符

Using the # symbol in Pascal to type characters past 127 range

我知道在 pascal 中你可以使用 # 字符来显示某些字符,比如 tab(#9), carriage return line feed(#13#10), ect.
当我尝试做 127 范围之外的其他字符时,比如 #169 它用问号。
如何更改 lazarus 中的字符编码以便我可以使用此字符?

根据 Free Pascal:

The # indicates the control string

The control string can be used to specify characters which cannot be typed on a keyboard, such as #27 for the escape character.

参见 free pascal character strings

以上页面还提到:

It is possible to use other character sets in strings: in that case the codepage of the source file must be specified with the {$CODEPAGE XXX} directive or with the -Fc command line option for the compiler. In that case the characters in a string will be interpreted as characters from the specified codepage.

例如,如果您想使用 UTF-8 编码,您可以使用 (see this page):

{$CODEPAGE UTF8}
{$Mode ObjFPC}{$H+}

(如果您在 windows 上,您可以选择 these code pages.

我在 mac 上使用 fpc(免费的 pascal 编译器)测试了以下示例:

program Example;
{$CODEPAGE utf8}
{$Mode ObjFPC}{$H+}
Begin
   writeln('Hello World'#13#10);
   writeln('carriage return line');
   writeln('Example: '#$C3#$A4);
End.

这个例子打印出ä字符,是对dealing with UTF8 in free pascal页面例子的修改,对你解决这个问题有很大帮助。您可能需要调整该页面上的解决方案以适应您的问题。

请注意,我能够访问 ä 字符,因为我使用了它的十六进制值 C3A4