2016-01-04 41 views
1

我知道,在帕斯卡可以使用#字符,顯示一個類似標籤#9),回車換行符#13#10),ECT某些字符輸入的字符。
當我嘗試使用#169這樣的127範圍中的其他字符時,它會用一個問號替換它。
如何更改lazarus中的字符編碼,以便我可以使用此字符?在帕斯卡爾使用#符號過去127範圍

+1

Windows:控制檯盒的屬性?如果是Linux,請更改控制檯/終端程序的編碼 –

+0

它不會*在任何地方將其替換*。它可能*顯示*不同。你如何在看到'?'的地方顯示文字? –

回答

0

據自由帕斯卡:

#表示控制字符串

控制線可用於指定無法在鍵盤上鍵入的字符,如#27轉義字符。

參見free pascal character strings

以上頁也提到:

它可以在字符串中使用其它字符集:在這種情況下源文件的代碼頁必須與{$CODEPAGE XXX}指令或與-Fc指定編譯器的命令行選項。在這種情況下,字符串中的字符將被解釋爲來自指定代碼頁的字符。

例如,如果你想使用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. 

此示例pr輸入ä字符,並修改了dealing with UTF8 in free pascal頁面上的示例,這將有助於您解決此問題。您可能需要調整該頁面上的解決方案以適應您的問題。

請注意,我能夠訪問ä字符,因爲我使用它的十六進制值C3A4