在c#中操作剪切板时如果使用 Clipboard.GetText()时中文正常
当使用 Clipboard.GetData(TextDataFormat.Html)时只要遇到中文就会乱码,
后来经过如下处理大部分中文可以显示,但是遇到某些文字还是会乱码,不知何故,还请高手指点阿!byte[] data = Encoding.Convert(Encoding.UTF8, Encoding.Default, Encoding.Default.GetBytes(Clipboard.GetText(TextDataFormat.Html)));
string str = Encoding.Default.GetString(data);这是剪切板中的html
<html>
<body>杭州市</body>
</html>这是上述结果中的str值
Version:1.0
StartHTML:000000215
EndHTML:000000376
StartFragment:000000330
EndFragment:000000340
StartSelection:000000330
EndSelection:000000340
SourceURL:file://C:\Documents and Settings\kevin\桌面\a.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML><HEAD></HEAD><BODY><!--StartFragment-->杭州?<!--EndFragment--></BODY>
</HTML>
当使用 Clipboard.GetData(TextDataFormat.Html)时只要遇到中文就会乱码,
后来经过如下处理大部分中文可以显示,但是遇到某些文字还是会乱码,不知何故,还请高手指点阿!byte[] data = Encoding.Convert(Encoding.UTF8, Encoding.Default, Encoding.Default.GetBytes(Clipboard.GetText(TextDataFormat.Html)));
string str = Encoding.Default.GetString(data);这是剪切板中的html
<html>
<body>杭州市</body>
</html>这是上述结果中的str值
Version:1.0
StartHTML:000000215
EndHTML:000000376
StartFragment:000000330
EndFragment:000000340
StartSelection:000000330
EndSelection:000000340
SourceURL:file://C:\Documents and Settings\kevin\桌面\a.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML><HEAD></HEAD><BODY><!--StartFragment-->杭州?<!--EndFragment--></BODY>
</HTML>
string str = Clipboard.GetText(TextDataFormat.Html);//系统用的是Default编码,但实际上不是Default。这句是用来还原byte[]
byte[] buffer = Encoding.Default.GetBytes(str);//这句用正确的编码方式来解码(不需要像你那样把byte[]再转换一次)
string str = Encoding.UTF8.GetString(buffer);
如:
Clipboard.GetText()
但是我需要读取html源码!!!!