gpt4 book ai didi

c# - HTML:编码错误

转载 作者:太空宇宙 更新时间:2023-11-03 21:06:44 24 4
gpt4 key购买 nike

我知道这是一个常见问题,但我找不到问题的答案。我目前正在开发 HTML 编辑器。只需单击一个按钮,您就可以从网络浏览器 View 更改为 TextView 。如果我再次按下按钮,网络浏览器将再次显示 HTML 代码。但我也可以在文本模式下手动更改代码,如果我这样做,代码将显示错误。例如:如果我这样写:

Ö Ä Ü

我改变了一些东西,它会显示这个:

Ö Ä Ü

我已经试过了:

byte[] bytes = Encoding.Default.GetBytes(mytextbox.Text);
string htmlcode = Encoding.UTF8.GetString(bytes);

还有这个:

 HttpUtility.HtmlDecode

但这没有用。我希望你能帮助我。

编辑:

我有一个 WPF WebBrowser,我可以在其中使用 mshtml 编辑我的代码。如果我这样写:

Ö Ä U

然后我用这段代码切换到 TextView :

mytextbox.Text = doc.body.outerHTML;

文本框中显示的 HTML 代码:

<BODY>Ö Ä Ü</BODY>

文本框是只读的,如果你想编辑它你需要按另一个按钮。如果我当前使用此代码编辑文本并再次更改为浏览器 View :

if (myWebBrowser != null)
{
myWebBrowser.Dispose();
browsergrid.Children.Remove(myWebBrowser);
}
if (doc != null)
{
doc.clear();
}
myWebBrowser = new WebBrowser();
browsergrid.Children.Add(myWebBrowser);
myWebBrowser.NavigateToString(mytextbox.Text);
doc = myWebBrowser.Document as HTMLDocument;
doc.designMode = "On";

浏览器显示如下:

Ö Ä Ü

最佳答案

自己修好了。如果有人想知道,这里是解决方案:

我更改了我的默认文档字符串

<html><body></body></html>

<html><meta http-equiv='Content-Type' content='text/html;charset=UTF-8'><body></body></html>

我将我的 TextBox 更改为 RichTextBox,因为代码会更清晰,而且我只显示我的 HTML 代码的主体:

mytextbox.Text = doc.body.outerHTML;

然后我编辑它以查看整个 HTML 代码:

myRichTextBox.Document.Blocks.Clear();
myRichTextBox.Selection.Text= doc.documentElement.innerHTML;

将html代码加载回浏览器的代码:

string htmlcode = new TextRange(myRichTextBox.Document.ContentStart, myRichTextBox.Document.ContentEnd).Text;
myWebBrowser.NavigateToString(htmlcode);

感谢您的回答!

关于c# - HTML:编码错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40759999/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com