有关粘贴板内容编码的问题,我已经被困扰了很久。

sdyiheng 2004-04-08 11:17:24

问题描述:如果在浏览网页时,拷贝了一段中文网页到粘贴板。在dotnet中,获取粘贴板上的html格式的数据时,捕获到的中文信息出现了乱码。而英文的内容就不会出现问题。我想一定是编码的问题。

意图:
我的目的是要获取粘贴板上从网页中拷贝的信息。因为DataFormats.UnicodeText和DataFormats.Text格式的数据并不含有数据的格式信息(比如我们从网页上拷贝了一个表格)。所以我想获取DataFormats.Html格式的信息。

测试代码很简单,你可以试一下:
首先从网页上拷贝一段中文信息。
然后在一个winForm中执行下面的代码:
private void button5_Click(object sender, System.EventArgs e)
{
try
{
IDataObject data = Clipboard.GetDataObject();
if(data.GetDataPresent(DataFormats.Html))
{
string dataHtml = data.GetData(DataFormats.Html,true) as string;
MessageBox.Show(dataHtml);
}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message );
}


}

在blogs.joycode.com上看到小峰的一个帖子:http://blog.joycode.com/zjf/posts/17535.aspx,他给了一点提示:从剪贴板得到数据是utf-8编码的,你可以用utf-8转为gb2312就可以了,不过我还是没有搞明白如何去实现。


...全文
151 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Montaque 2004-04-08
  • 打赏
  • 举报
回复
Try

MessageBox.Show(System.Text.Encoding.UTF8.GetString(System.Text.Encoding.GetEncoding("gb2312").GetBytes(dataHtml)) );
sdyiheng 2004-04-08
  • 打赏
  • 举报
回复
楼上说的很对。谢谢

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧