2016-11-23 6 views
1

これはよくある質問ですが、私の問題の答えは見つかりませんでした。私は現在、HTMLエディターで作業しています。ボタンを1回クリックするだけで、Webブラウザからテキストビューに変更できます。もう一度ボタンを押すと、WebブラウザにHTMLコードが再び表示されます。しかし、私はまた、テキストモードでコードを手動で変更することができますし、私がそうした場合、コードは間違って表示されます。私はこのような何か書く場合:たとえばHTML:エンコードが間違っています

A- A「AOE

ÖÄÜ

を、私は何かを変更するには、この表示されます

私はすでにこれを試しました:

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

と、この:

HttpUtility.HtmlDecode 

それdidntの仕事。あなたが私を助けることを願っています。

EDIT:

私はMSHTMLで自分のコードを編集することができますWPFのWebBrowserコントロールを持っています。私はこのような何か書く場合:

ÖÄU

を、私はこのコードをテキストビューに変更します。

mytextbox.Text = doc.body.outerHTML; 

テキストボックスに示されているHTMLコード:

<BODY>Ö Ä Ü</BODY> 

これを編集したい場合は、テキストボックスをReadOnlyにします。別のボタンを押す必要があります。私は、テキストを編集して、このコードで、現在再びたBrowserViewに変更する場合:

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"; 

ブラウザは、この表示されます。

A- A「AOE

+0

HTMLコードを投稿できますか? – Raptor

+0

あなたは間違いなく、*間違いなく*そのコードを使用する必要があります。どこでも 'Encoding.Default'を使うべきではありません。さて、あなたは問題の診断をどれだけ取得しましたか?どのようにHTMLを表示していますか? –

+0

これはエンコードの仕組みではありません。 1つのエンコーディングでバイトを取得し、UTF8として解釈することはできません。 –

答えて

1

自分で修正しました。誰かがそれを知りたい場合はここで解決策は:

私は、コードがより明確になるので、私は、リッチテキストボックスに自分のTextBoxを変え

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

から

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

に私の既定のドキュメントの文字列を変更しました私はこのコードでHTMLコードの本文を表示していました。

mytextbox.Text = doc.body.outerHTML; 

とI edite Dそれは全体の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); 

感謝を!

2

をあなたはhtmlコードを使用することができますそれらの文字のために。これらのコードはThis Linkにあります。あなたのケースでは

& Ouml Oで置き換えます。 // ";"の前にスペースを削除する

Äを& Aumlで置き換えます。 // ";"の前にスペースを削除する

Üを& Uumlに置き換えます。 // ";"の前にスペースを削除する

関連する問題