visual studio2010复制粘贴源代码到Word时乱码问题

问题描述:

visual studio2010 拷贝源代码的时候,在windows自带的写字板和word2010上,粘贴的时候中文字符都会变成乱码。

如:

 "该用户已经被成功添加";

将变成

"该?用?户§已?经-被?成é功|添?加ó"; 

参考网上的文章,弄了个客户端工具:

程序界面:

visual studio2010复制粘贴源代码到Word时乱码问题_第1张图片

核心代码:

        private void BtnconvertClick(object sender, EventArgs e)
        {
            //取得剪貼簿內容
            IDataObject o = Clipboard.GetDataObject();
            if (o != null && o.GetDataPresent(DataFormats.Rtf))
            {
                //取出RTF格式
                var rtf = o.GetData(DataFormats.Rtf) as string;
                //以Regex.Replace去除多餘字元(註: 不管是否有問題,一律強制處理)
                if (rtf != null)
                {
                    string convert = Regex.Replace(rtf, @"\\uinput2(?<uc>\\u-?\d*)\s..",
                                                   (m) => m.Groups["uc"].Value + "?");
                    //另建新DataObject物件
                    var data = new DataObject();
                    //RTF格式用修正後的字串,其餘依原值
                    foreach (String t in o.GetFormats())
                    {
                        data.SetData(t, t == "Rich Text Format" ? convert : o.GetData(t));
                    }
                    //將修正後內容寫入剪貼簿
                    Clipboard.SetDataObject(data, true);
                }
                MessageBox.Show("编码转换成功,粘贴到word吧!", "提示信息");
            }
        }
程序下载:http://download.csdn.net/detail/a497785609/8206749

参考文章:http://blog.darkthread.net/blogs/darkthreadtw/archive/2010/06/03/fix-vs2010-clipboard-bug.aspx

你可能感兴趣的:(visual studio2010复制粘贴源代码到Word时乱码问题)