2015-10-15 39 views
0

如果我必须解析包含中文的剪贴板中的数据,应使用什么DataFormat?用C语言解析器从剪贴板获取中文数据#

目前我使用下面的代码来解析来自DataGrid的数据。如果剪贴板数据是中国

+0

您确定这个值实际上是否正确(即您可以将它放到Word /记事本中并查看有效的文本)? –

+0

是的。我试着用Excel。数据是有效的。 – nan

+0

你可以把数据复制到记事本上吗......我的意思是单元值有问题 – Kapoor

回答

0

只需使用DataFormats.UnicodeText

object clipboardRawData = null; 
ParseFormat parseFormat = null; 
IDataObject dataObj = System.Windows.Clipboard.GetDataObject(); 

if ((clipboardRawData = dataObj.GetData(DataFormats.CommaSeparatedValue)) != null) 
{ 
    parseFormat = ParseCsvFormat; 
} 
else if ((clipboardRawData = dataObj.GetData(DataFormats.Text)) != null) 
{ 
     parseFormat = ParseTextFormat; 
} 
string rawDataStr = clipboardRawData as string; 

回报乱码。 DataFormats.Text将尝试使用ANSI编码,这将在中文符号上失败。

+0

哦,它本身不会失败。这只取决于传统的代码页,我猜可能是中文的。 – Joey