2010-10-19 124 views
2

我找不到默認情況下控制檯應用使用哪種字體?是否保證每個人都擁有該字體(運行此.NET應用程序時)?想要顯示一些unicode字符,並且需要確定它們在該字體中。 感謝C#控制檯字體

+0

AFAIK您無法更改/瞭解控制檯的字體。它的編碼由操作系統決定。 – 2010-10-19 19:00:11

回答

8

我強烈建議避免控制檯,如果你想使用Unicode字符。嘗試讓控制檯正確顯示Unicode有許多問題。

控制檯輸出中不直接支持Unicode。最好的選擇通常是set the console's code page,這將需要P/Invoke。

這就是說,GUI以更好的方式解決了所有這些問題。如果你需要Unicode輸出,我會推薦一個簡單的GUI。

+1

您可以對此進行投票 - 但要等到實際嘗試將unicode寫入控制檯時 - 這是令人難以置信的問題......即使您爲控制檯指定了TrueType字體,代碼頁實際上也會混淆unicode輸出。 – 2010-10-19 19:07:44

+0

@Dervin:OP正在嘗試做一些不直接支持的事情。 – 2010-10-19 19:08:01

+0

我不這麼認爲,因爲在C#中每個字符串都是unicode字符的字符串。 – Loj 2010-10-19 19:08:40

1

你可以告訴正在使用的字體由該密鑰讀取註冊表值「0」:

HKLM\Software\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont 
+1

這只是沒有例外的語言環境的默認控制檯字體。一些語言定義了其他值。例如,如果您安裝了安裝了東亞國際化文件的Windows,則會看到值爲'932':'* MSゴック','* MS Gothic'。這意味着當系統代碼頁是932(Windows shift-JIS knock-off)時,與日文系統一樣,字體將是MS哥特式,而不是'0'中列出的字體。當你用'chcp'改變代碼頁時,你甚至可以看到它切換字體。 – bobince 2010-10-20 01:34:57

+0

謝謝!曾幾何時,文本看起來很簡單... – 2010-10-20 03:07:16

+0

根據我的經驗,這個註冊表鍵似乎影響Windows控制檯,但不影響.NET對象'System.Console'。 – H2ONaCl 2014-07-13 15:08:28