2010年11月3日 星期三

VS2010複製程式碼時中文註解夾雜亂碼問題

最近在做 VS2010的筆記時,覺得怎麼每次在程式中寫的中文註解要貼製WORD時都會夾雜一些亂碼,這真讓人不勝其擾啊,因此在網路上搜尋了一下,原來這是個bug。
如:此段語法在做資料庫的連結 變成 此@段l語.法L在r做im資p料$庫:的d連wq結gu

黑暗執行續中找到一隻小程式可解決,他的目地在於
複製在Clipboard裡的內容出現多餘字元,一個小工具,取出剪貼內容,用Regex修改後再貼回去。
原始程式碼:

//每個中文字後會連著一到兩個多餘字元
private void btnFix_Click(object sender, EventArgs e)
{
//取得剪貼簿內容
IDataObject dataObject = Clipboard.GetDataObject();
if (dataObject.GetDataPresent(DataFormats.Rtf))
{
 //取出RTF格式
string rtf = dataObject.GetData(DataFormats.Rtf) as string;
//以Regex.Replace去除多餘字元(註: 不管是否有問題,一律強制處理)
string fixedRtf =
Regex.Replace(rtf, @"\\uinput2(?<uc>\\u-?\d*)\s..",
(m) =>
{
return m.Groups["uc"].Value + "?";
});
//另建新DataObject物件
DataObject newDataObject = new DataObject();
 //RTF格式用修正後的字串,其餘依原值
foreach (String t in dataObject.GetFormats())
newDataObject.SetData(t,
t == "Rich Text Format" ? fixedRtf :
dataObject.GetData(t));
//將修正後內容寫入剪貼簿
Clipboard.SetDataObject(newDataObject, true);
}
}



下載FIX-修正VS2010剪貼程式

資料來源:
黑暗執行續  FIX-修正VS2010剪貼程式碼時中文夾雜亂碼問題

沒有留言:

張貼留言