C# HTML:编码错误
我知道这是一个常见的问题,但我找不到解决我问题的答案。我目前正在开发一个HTML编辑器。只需单击一个按钮,即可从webbrowser视图更改为textview。如果我再次按下按钮,webbrowser将再次显示HTML代码。但我也可以在文本模式下手动更改代码,如果这样做,代码将显示错误。例如:如果我写这样的东西: ÖÄÜ 我改变了一些东西,它会显示: ÖÃÃœ 我已经试过了:C# HTML:编码错误,c#,html,wpf,C#,Html,Wpf,我知道这是一个常见的问题,但我找不到解决我问题的答案。我目前正在开发一个HTML编辑器。只需单击一个按钮,即可从webbrowser视图更改为textview。如果我再次按下按钮,webbrowser将再次显示HTML代码。但我也可以在文本模式下手动更改代码,如果这样做,代码将显示错误。例如:如果我写这样的东西: ÖÄÜ 我改变了一些东西,它会显示: ÖÃÃœ 我已经试过了: byte[] bytes = Encoding.Default.GetBytes(mytextbox.Text); s
byte[] bytes = Encoding.Default.GetBytes(mytextbox.Text);
string htmlcode = Encoding.UTF8.GetString(bytes);
这是:
HttpUtility.HtmlDecode
但这不起作用。我希望你能帮助我
编辑:
我有一个WPF WebBrowser,在那里我可以用mshtml编辑我的代码。如果我这样写:
ÖÄU
我用以下代码切换到文本视图:
mytextbox.Text = doc.body.outerHTML;
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
代码。这些代码可以在中找到
就你而言:
将Ö替换为Ö//在“;”之前删除空格
将Ä替换为Ä//在“;”之前删除空格
将Ü替换为Ü//在“;”之前删除空格
我自己修的。如果有人想知道,这里有一个解决方案: 我将默认文档字符串从
<html><body></body></html>
我编辑它以查看整个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);
谢谢你的回答我自己修好了。如果有人想知道,这里有一个解决方案: 我将默认文档字符串从
<html><body></body></html>
我编辑它以查看整个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);
谢谢你的回答你能发布HTML代码吗?你绝对应该使用这些代码。您不应该在任何地方使用
编码。默认值为。现在,你对这个问题的诊断有多深?如何显示HTML?编码不是这样工作的。您无法在一种编码中获取字节并将其解释为UTF8。可能存在HttpUtility.HtmlEncode
和HttpUtility.HtmlDecode
的重复。您可能正在查找。您可以发布HTML代码吗?您肯定应该使用该代码。您不应该在任何地方使用编码。默认值为。现在,你对这个问题的诊断有多深?如何显示HTML?编码不是这样工作的。您无法在一种编码中获取字节并将其解释为UTF8。您可能正在寻找HttpUtility.HtmlEncode
和HttpUtility.HtmlDecode
的副本。