visual studio2010复制粘贴源代码到Word时乱码问题 分类: C# 2014-11-28 09:25 686人阅读 评论(0) 收藏

问题描述:

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

如:

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

将变成

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

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

程序界面:


核心代码:

        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

版权声明:本文为博主原创文章,未经博主允许不得转载。

原文地址:https://www.cnblogs.com/zhangqs008/p/4687651.html