あなたはDelphi 2007を使用しています。これは、DelphiプログラミングのUnicode時代の始まりです。
初期バージョンのDelphiでUnicodeを動作させることは非常に面倒ですが、一部のコントロール、特にTHtmlViewコンポーネントで満足のいく結果を得ることは可能です。
私は私のプログラムのいずれかからいくつかのコード例を投稿:
//code to toggle source or WYSIWYG views
var
htmEd: IHTMLDocument2;
begin
htmEd := HtmlEdit.Document as IHtmlDocument2;
if ToggleTabSet.TabIndex = 0 then
begin
HtmlEditContainer.PageIndex := 0; // Tab sheet index
htmEd.body.innerHTML := Memo1.Lines.Text; // TTntMemo
pnlEditorState.Caption := 'Design View';
end
else
if ToggleTabSet.TabIndex = 1 then
begin
HtmlEditContainer.PageIndex := 1;
Memo1.Lines.Text := HtmEd.body.innerHTML;
pnlEditorState.Caption := 'Source View';
end;
はあなたが私はhtmlファイルが最初にロードされているTTntMemoコンポーネントを使用していることがわかります上記のコードを読みます。私はその後、HtmlViewの 'body.innerHTML'プロパティにメモの 'Text'を読み込みます。
htmEd.body.innerHTML := Memo1.Lines.Text;
注:
- TntWareの 'Memo1.Lines.Text;' WideString型です。
- 'IHTMLDocument2'はTEmbeddedWBからのものです。理由を見るwhy TEmbeddedWB is good?
これは私の初期の仕事です。私はDelphi 2009に切り替えました。物事ははるかに簡単になりました(ファイルのロード中に適切なTEncodingを設定するだけです)!
なぜ "Unicode" htmlファイルがありますか?私はあなたがUTF-16/UCS-2エンコーディング(http://en.wikipedia.org/wiki/UCS-2)でファイルを持っているということを意味します。生成するアプリケーションをUTF-8エンコーディングで書き換える方がずっと良いでしょう。 [一般的な見解では、私はTHHTViewerで何の経験も持っていません。] – mghie
@mghie - 観測に感謝します。それらはUTF-16ファイルです。なぜなら、それらを生成するプログラム(私のコントロールの外にある)がそれらを出力しているからです。だから私は現時点でそれに固執していますが、私はプロジェクトの世代部分を引き継ぎ、出力形式を適切に制御できることを願っています。 – robsoft