DataFormats.Text 获得剪贴板的值是乱码

chenyuling 2009-03-18 12:18:00
我在做这样的一个功能。

双击打开一个记事本-->
CTRL+A(全选)-->
CTRL+C(文件)-->


IDataObject iData = Clipboard.GetDataObject();
string a = "";
if (iData.GetDataPresent(DataFormats.Text))
{
a = (String)iData.GetData(DataFormats.Text);
}

这样就把剪贴板的值赋给了变量a ,这些都没有问题,但是为什么a是乱码呢?

这里不能用StreamReader这样的办法。
...全文
198 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
cppfaq 2009-03-18
  • 打赏
  • 举报
回复
那么费劲干嘛?
string iData = Clipboard.GetText();

搞定。
skison 2009-03-18
  • 打赏
  • 举报
回复
if(Clipboard.ContainsText() )
string s = Clipboard.GetText( TextDataFormat.Text );
gisyellow 2009-03-18
  • 打赏
  • 举报
回复
字符编码不一样吧,Text可能不是Unicode。。
zgke 2009-03-18
  • 打赏
  • 举报
回复
编码的方式很多..应该是你文字的编码问题.

IDataObject iData = Clipboard.GetDataObject();


string a = "";
if (iData.GetDataPresent(DataFormats.UnicodeText))
{

a=(String)iData.GetData(DataFormats.UnicodeText);
}
这样看看

111,126

社区成员

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

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

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