• C# 从剪贴板中读取HTML中的中文字符出现乱码问题的解决方案


    通过如下代码在剪贴板中获取含HTML格式的文本时发现当内容出现汉字的时候会有乱码

    if (Clipboard.ContainsText(TextDataFormat.Html))
        textBox1.Text = Clipboard.GetText(TextDataFormat.Html);
    通过剪贴板工具分析,HTML格式的文本是UTF8编码方式看来Clipboard.GetText()是解码出了问题

    那就自己来完成这个解码工作吧!
    if (Clipboard.ContainsText(TextDataFormat.Html))
    {
        MemoryStream vMemoryStream = 
            Clipboard.GetData("Html Format") as MemoryStream;
        vMemoryStream.Position = 0;
        byte[] vBytes = new byte[vMemoryStream.Length];
        vMemoryStream.Read(vBytes, 0, (int)vMemoryStream.Length);
        textBox1.Text = Encoding.UTF8.GetString(vBytes);
    }

     Clipboard 类提供一个容器,用于通过剪贴板传输数据和对象。在 AIR 中,Clipboard 类还用于拖放操作。通过静态 generalClipboard 属性可以访问操作系统剪贴板。

    Clipboard 对象可以包含多种格式的相同信息。通过以多种格式提供信息,可以增加另一个应用程序能够使用该信息的机会。使用 setData()setDataHandler() 方法向 Clipboard 对象添加数据。

    标准格式是:

    • BITMAP_FORMAT:BitmapData 对象(仅限 AIR)
    • FILE_LIST_FORMAT:File 对象的数组(仅限 AIR)
    • HTML_FORMAT:HTML 格式的字符串数据
    • TEXT_FORMAT:字符串数据
    • RICH_TEXT_FORMAT:包含 RTF 格式数据的 ByteArray
    • URL_FORMAT:URL 字符串(仅限 AIR)

    ClipboardFormats 类中定义了用作标准格式的名称的这些常量。

  • 相关阅读:
    Mac下发布Unity3d中Android平台下出现“android (invokation failed)”的错误
    图片切换特过渡效果
    文件下载
    ASP.NET前台绑定后台变量方法总结
    C# aspx 数据绑定集中 Bind Eval DataBinder.Eval
    MVC 3 Excel文件下载
    ASP.NET中Get和Post的用法 Request.QueryString,Request.Form,Request.Params的区别
    删除掉前一天文件夹里面的文件
    友情链接
    博客园管理记录
  • 原文地址:https://www.cnblogs.com/hackpig/p/1668470.html
Copyright © 2020-2023  润新知