我正在使用WinForm應用程序,並且我有一個文本框,用於粘貼來自Google Translator的文本。我用幾種Sematic和Indo語言獲得了積極的成果,但中文字符顯示爲Boxes。在Windows窗體文本框中是否無法粘貼中文字符
有什麼辦法可以解決這個問題嗎?
我正在使用WinForm應用程序,並且我有一個文本框,用於粘貼來自Google Translator的文本。我用幾種Sematic和Indo語言獲得了積極的成果,但中文字符顯示爲Boxes。在Windows窗體文本框中是否無法粘貼中文字符
有什麼辦法可以解決這個問題嗎?
您應該使用適當的Unicode字體,它支持CJK編碼。更好的是「Arial Unicode MS」,但它可能在沒有安裝MS Office的Vista上早於 操作系統。在這種情況下,您可以使用另一種字體,如「NSimSun」。
string arialUnicodeFontFace = "Arial Unicode MS"; Font unicodeFont = new Font(arialUnicodeFontFace, fontSize); if (unicodeFont.Name != arialUnicodeFontFace) unicodeFont = new Font("NSimSun", fontSize); yourTextBox.Font = unicodeFont;
您也可以看看不同版本的Windows的所有受支持CJK的字體列表: http://en.wikipedia.org/wiki/List_of_CJK_fonts
默認情況下,「Arial Unicode MS」似乎無法在Vista(或Win7)中使用 - 您也需要某些Office產品,例如Word或Excel。請參閱:http://www.microsoft.com/typography/fonts/font.aspx?FMID=1081 – 2013-02-08 22:48:28
這是因爲默認的Windows字體 - 可能的Microsft無襯線 - 沒有這些字符。您可以將文本框使用的字體更改爲其他字體Arial Unicode(如果您有Office)或其中一種中文特定字體,但我不知道如何根據內容爲每個字符或智能地執行此操作。假設你的應用程序是Unicode,那麼字符仍然會正確粘貼,順便說一句,即使它們顯示不正確。 – Rup 2011-04-13 08:52:40
是的,我正在使用Microsfot Sans Serif。你推薦使用Arial Unicode嗎?它會解決很多問題嗎? – 2011-04-13 08:55:20
我不知道 - 我想如果可以的話,單獨使用默認字體可能會更好(並且中國用戶已經在使用支持他們字符的字體了 - mingliu?)。 Arial Unicode隨Office提供,不包含Windows,所以只有安裝了Office的用戶才能擁有它,因此根據您部署的用戶,它可能不是最佳選擇。 – Rup 2011-04-13 08:59:12