我编的一个学习小程序,需要用到 Webbrowser显示网页,但是显示乱码

时间:2023-02-10 10:31:58
string URL=“http://219.139.106.6:8888/tiku/5/question/20131224084053767968268/SYS201312240840537679682014_ST.html”;
ShowQuestion.Url = new Uri(URL);

我如何做才能使Webbrowser  设定为 编码固定以 (UTF-8)显示

8 个解决方案

#1


你那个结果并不是完整的网页,只是一些片断,网页本身是可以指定编码的,请参照下面的格式:
<html>
 <head>
<meta http-equiv=Content-Type content="text/html;charset=utf-8">
 </head>
 <body>
  地球上每小时都( )有人出生.<br />A.一定<br />B.可能<br />C.不可能<br /><!--E2-->
 </body>
</html>

#2


webBrowser1.Document.Encoding = "UTF-8"

#3


引用 2 楼 wpfLove 的回复:
webBrowser1.Document.Encoding = "UTF-8"

这个没作用;

-----------------------------------
引用 1 楼 tcmakebest 的回复:
你那个结果并不是完整的网页,只是一些片断,网页本身是可以指定编码的,请参照下面的格式:[code=html</html>
[/code]


就是这样的网页,有几千个,我也知道不完整,试图用替换软件在文件头和尾部补,但是一旦用软件补完整,文件就是乱码!
-------------------------------
其实,在鼠标点右键,选【UTF-8】,就可以显示正常,但是没法固定下来
如果在网页固定了,那网页就不会正常,毕竟大部分是国语标准的

#4


补完是乱码的说明补的编码不对,先检查文件的保存编码是什么吧。

#5


变换一种思路,由于C#调用 webBrowser 用的是IE的核心,可不可以用C#强制设置IE显示编码为【UTF-8】
等待C#退出时还原设置

#6


该回复于2013-12-29 13:12:22被管理员删除

#7


下面的代码可以了,2楼的代码之后要刷新,给 webBrowser1 设 DocumentCompleted 事件
void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    if (webBrowser1.Document != null 
        && webBrowser1.Document.Encoding == "gb2312"
        && webBrowser1.Document.Url.AbsoluteUri.StartsWith("http://219.139.106.6:8888/"))
    {
        webBrowser1.Document.Encoding = "UTF-8";
        webBrowser1.Refresh();
    }
}

#8


谢谢,省了我很大功夫!

引用 7 楼 tcmakebest 的回复:
下面的代码可以了,2楼的代码之后要刷新,给 webBrowser1 设 DocumentCompleted 事件
void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    if (webBrowser1.Document != null 
        && webBrowser1.Document.Encoding == "gb2312"
        && webBrowser1.Document.Url.AbsoluteUri.StartsWith("http://219.139.106.6:8888/"))
    {
        webBrowser1.Document.Encoding = "UTF-8";
        webBrowser1.Refresh();
    }
}

#1


你那个结果并不是完整的网页,只是一些片断,网页本身是可以指定编码的,请参照下面的格式:
<html>
 <head>
<meta http-equiv=Content-Type content="text/html;charset=utf-8">
 </head>
 <body>
  地球上每小时都( )有人出生.<br />A.一定<br />B.可能<br />C.不可能<br /><!--E2-->
 </body>
</html>

#2


webBrowser1.Document.Encoding = "UTF-8"

#3


引用 2 楼 wpfLove 的回复:
webBrowser1.Document.Encoding = "UTF-8"

这个没作用;

-----------------------------------
引用 1 楼 tcmakebest 的回复:
你那个结果并不是完整的网页,只是一些片断,网页本身是可以指定编码的,请参照下面的格式:[code=html</html>
[/code]


就是这样的网页,有几千个,我也知道不完整,试图用替换软件在文件头和尾部补,但是一旦用软件补完整,文件就是乱码!
-------------------------------
其实,在鼠标点右键,选【UTF-8】,就可以显示正常,但是没法固定下来
如果在网页固定了,那网页就不会正常,毕竟大部分是国语标准的

#4


补完是乱码的说明补的编码不对,先检查文件的保存编码是什么吧。

#5


变换一种思路,由于C#调用 webBrowser 用的是IE的核心,可不可以用C#强制设置IE显示编码为【UTF-8】
等待C#退出时还原设置

#6


该回复于2013-12-29 13:12:22被管理员删除

#7


下面的代码可以了,2楼的代码之后要刷新,给 webBrowser1 设 DocumentCompleted 事件
void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    if (webBrowser1.Document != null 
        && webBrowser1.Document.Encoding == "gb2312"
        && webBrowser1.Document.Url.AbsoluteUri.StartsWith("http://219.139.106.6:8888/"))
    {
        webBrowser1.Document.Encoding = "UTF-8";
        webBrowser1.Refresh();
    }
}

#8


谢谢,省了我很大功夫!

引用 7 楼 tcmakebest 的回复:
下面的代码可以了,2楼的代码之后要刷新,给 webBrowser1 设 DocumentCompleted 事件
void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    if (webBrowser1.Document != null 
        && webBrowser1.Document.Encoding == "gb2312"
        && webBrowser1.Document.Url.AbsoluteUri.StartsWith("http://219.139.106.6:8888/"))
    {
        webBrowser1.Document.Encoding = "UTF-8";
        webBrowser1.Refresh();
    }
}