zoukankan      html  css  js  c++  java
  • VS 2010 复制代码到word出现乱码解决办法

    代码部分属于转载,文字部分原创!

    直接复制VS2010的代码到Word里面去时,汉字会出现如下乱码,虽然可以采用记事本打开然后复制的方法,但是这样就失去了高亮色,不是我们想要的,下面的小程序就是解决这个问题的。

    乱码:

    if (dataObject.GetDataPresent(DataFormats.Rtf))
                {
                    //取¨?出?RTF格?式º?
                    string rtf = dataObject.GetData(DataFormats.Rtf) as string;
                    //以°?Regex.Replace去¨£¤除y多¨¤余®¨¤字Á?元a(註]: 不?管¨¹是º?否¤?有®D問?題
    }

     

    程序截图:

    使用时,先正常复制代码到剪贴板,然后点击“乱码修正”按钮,最后直接粘贴到Word里面就不会有乱码了。

    附代码:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    
    namespace VS中文乱码修复程序
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void button乱码修正_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 =
                      System.Text.RegularExpressions.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);
                    MessageBox.Show("中文乱码修正成功!\n现在您可以直接到Word里按Ctrl+V粘贴了!", "成功");
                }
                else
                    MessageBox.Show("您粘贴的不是代码!","错误");
            }
        }
    }
  • 相关阅读:
    Pandas 包基础
    记录numpy 数组打印形式
    WordPress 模板层次结构
    WordPress 主题开发
    WordPress 主题开发
    WordPress 主题开发
    WordPress 主题开发
    WordPress 主题开发
    WordPress 主题开发
    WordPress 主题开发
  • 原文地址:https://www.cnblogs.com/liuxianan/p/2554128.html
Copyright © 2011-2022 走看看