C#クリップボードからHTML形式のコンテンツを取得中国語文字を含む問題と解決方法

2596 ワード

次のコードでクリップボードからHTML形式のテキストを取得すると、内容に漢字が表示されると文字化けしてしまうことがわかります

 
if (Clipboard.ContainsText(TextDataFormat.Html))
textBox1.Text
= Clipboard.GetText(TextDataFormat.Html);

クリップボードツールの解析により、HTML形式のテキストはUTF 8符号化方式で見たところ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);
}

回転:
http://www.csharpwin.com/csharpspace/9097r5853.shtml
WebBrowserは、エンコードされたプロトタイプコードを設定します.
IHTMLDocument2 m_hDoc = (IHTMLDocument2)axWebBrowser1.Document;
m_hDoc.charset = "gb2312";