C# 剪貼板中文亂碼問題

最近寫了個小工具。主要功能是生成一些數據,而後一鍵複製,最終粘貼到須要的地方。工具

 

原本一切正常的,但是當把工具拿給朋友使用時,卻被告知粘貼出來的數據是亂碼。當時第一時間想到是區域問題(朋友是臺灣人),不過大晚上的已經睡下了也只能次日再弄。編碼

 

 

經驗證,確實是區域語言問題致使的。 平時咱們大陸使用的基本上都是中文。鍵盤默認輸入語言也是中文,因此當咱們以默認方式設置剪貼板數據再粘貼出來是沒有任何問題的。但恰恰朋友的鍵盤默認輸入語言是英文,因而,一個編碼方式致使的亂碼便出現了。spa

// 默認方式
Clipboard.SetText("中國智造ABC123");

// 以ANSI編碼方式設置數據
Clipboard.SetText("中國智造ABC123", TextDataFormat.Text);

// 以Unicode編碼方式設置數據(能夠應對中文數據,無亂碼)
Clipboard.SetText("中國智造ABC123", TextDataFormat.UnicodeText);

 

解決方案:

  • 1.修改機器的鍵盤默認輸入語言。由英文修改成中文

   以Win7 爲例,按下Windows鍵呼出開始菜單,輸入「區域和語言」code

   

  點擊更改鍵盤:orm

  

  • 在設置剪貼板數據時,指定Unicode編碼方式。

  

// OK
Clipboard.SetText("中國智造ABC", TextDataFormat.UnicodeText);
相關文章
相關標籤/搜索