Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# HTML:编码错误_C#_Html_Wpf - Fatal编程技术网

C# HTML:编码错误

C# HTML:编码错误,c#,html,wpf,C#,Html,Wpf,我知道这是一个常见的问题,但我找不到解决我问题的答案。我目前正在开发一个HTML编辑器。只需单击一个按钮,即可从webbrowser视图更改为textview。如果我再次按下按钮,webbrowser将再次显示HTML代码。但我也可以在文本模式下手动更改代码,如果这样做,代码将显示错误。例如:如果我写这样的东西: ÖÄÜ 我改变了一些东西,它会显示: ÖÃÃœ 我已经试过了: byte[] bytes = Encoding.Default.GetBytes(mytextbox.Text); s

我知道这是一个常见的问题,但我找不到解决我问题的答案。我目前正在开发一个HTML编辑器。只需单击一个按钮,即可从webbrowser视图更改为textview。如果我再次按下按钮,webbrowser将再次显示HTML代码。但我也可以在文本模式下手动更改代码,如果这样做,代码将显示错误。例如:如果我写这样的东西:

ÖÄÜ

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

ÖÃÃœ

我已经试过了:

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
的副本。