infoman
一般會員
![](./myimg/board/mystar_empty.gif)
![](images/icon_photo_none.gif) 發表:2 回覆:4 積分:1 註冊:2004-10-27
發送簡訊給我
|
請問用 CppWebBrowser 元件開啟網頁時,
如何讓系統自動選取繁簡體編碼?
也就是不論網頁是繁體編碼或簡體編碼都成正確的開啟顯示.
謝謝!
|
geniustom
版主
![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif)
![](images/icon_photo_none.gif) 發表:100 回覆:303 積分:260 註冊:2003-01-03
發送簡訊給我
|
轉貼QOO1234大大的文章.. ![]() 【發表】取代 class="code">
uses
MSHTML_TLB, ActiveX,OleCtrls, SHDocVw_TLB;
{$R *.DFM} //編碼處理
procedure TForm1.SetCharSet(Const ACharSet: String);
var
RefreshLevel: OleVariant;
begin
try
IHTMLDocument2(Form1.WebBrowser1.Document).Set_CharSet(ACharSet);
RefreshLevel :=7;
Form1.WebBrowser1.Refresh2(RefreshLevel);
except
end;
end; ----------------------------------------------------------
SetCharset('big5'); //編碼-繁體中文
SetCharset('gb2312');//編碼-簡體中文
SetCharset('_autodetect_all'); //自動選取 尼可以修改這裡的程式碼成BCB的CODE..應該就可以解決您的問題...
GOOD LUCK
|
infoman
一般會員
![](./myimg/board/mystar_empty.gif)
![](images/icon_photo_none.gif) 發表:2 回覆:4 積分:1 註冊:2004-10-27
發送簡訊給我
|
謝謝您的回答.
可是我不知道如何將下面的 Delphi Code 轉成 BCB 的 Code.
BCB 裡面好像沒有類似的元件. 引言:
轉貼QOO1234大大的文章.. 【發表】取代 class="code">
uses
MSHTML_TLB, ActiveX,OleCtrls, SHDocVw_TLB;
{$R *.DFM} //編碼處理
procedure TForm1.SetCharSet(Const ACharSet: String);
var
RefreshLevel: OleVariant;
begin
try
IHTMLDocument2(Form1.WebBrowser1.Document).Set_CharSet(ACharSet);
RefreshLevel :=7;
Form1.WebBrowser1.Refresh2(RefreshLevel);
except
end;
end; ----------------------------------------------------------
SetCharset('big5'); //編碼-繁體中文
SetCharset('gb2312');//編碼-簡體中文
SetCharset('_autodetect_all'); //自動選取 尼可以修改這裡的程式碼成BCB的CODE..應該就可以解決您的問題...
GOOD LUCK
>>< face="Verdana, Arial, Helvetica">
|
geniustom
版主
![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif)
![](images/icon_photo_none.gif) 發表:100 回覆:303 積分:260 註冊:2003-01-03
發送簡訊給我
|
剛剛亂TRY了一下..OleObject的Document..有一個CharSet的屬性
OleObject的Document的一個小缺點就是沒法直接看他有提供哪些屬性..
所以要從HTML的DOM那邊找..就去看HTML OBJECT的 REFERENCE
果然被我找到了 ![]()
以下是 >
< class="code">
while Webbrowser1.ReadyState <> READYSTATE_COMPLETE do
Application.ProcessMessages;
WebBrowser1.OleObject.Document.CharSet:='utf-8';
CharSet:='big5'; //編碼-繁體中文
CharSet:='gb2312';//編碼-簡體中文
CharSet:='_autodetect_all'; //自動選取 我電腦沒冠BCB..不過BCB應該是這樣子寫 ![]()
< class="code">
while(CppWebBrowser1->ReadyState!=Shdocvw_tlb::READYSTATE_COMPLETE) {
Application->ProcessMessages();
}
CppWebBrowser1->OleObject->Document->CharSet='utf-8';
改變CODEPAGE一定要在整個網頁下載完成後才可以更換..所以上面兩行是必須的
不需要REFRESH..WebBrowser本身會自動重新整理一次..不過我試過了一下..
假如網頁的原始檔沒有標明CharSet為何
而您又碰巧使用了自動偵測..網頁可能仍然會出現亂碼..
所以您可能還要多加"當CharSet沒有值時"..預設為繁體中文..
這樣應該就蠻完美了... ![]() 發表人 -
|
infoman
一般會員
![](./myimg/board/mystar_empty.gif)
![](images/icon_photo_none.gif) 發表:2 回覆:4 積分:1 註冊:2004-10-27
發送簡訊給我
|
感謝您熱心的幫忙.
BCB 的 CppWebBrowser1->OleObject 後面就不能再接上 Property 了.
看起來 BCB 和 Delphi 並沒有一對一的對應.
不知道怎麼瓣才好. ![]() <>< face="Verdana, Arial, Helvetica">引言:
剛剛亂TRY了一下..OleObject的Document..有一個CharSet的屬性
OleObject的Document的一個小缺點就是沒法直接看他有提供哪些屬性..
所以要從HTML的DOM那邊找..就去看HTML OBJECT的 REFERENCE
果然被我找到了 ![]()
以下是 >
< class="code">
while Webbrowser1.ReadyState <> READYSTATE_COMPLETE do
Application.ProcessMessages;
WebBrowser1.OleObject.Document.CharSet:='utf-8';
CharSet:='big5'; //編碼-繁體中文
CharSet:='gb2312';//編碼-簡體中文
CharSet:='_autodetect_all'; //自動選取 我電腦沒冠BCB..不過BCB應該是這樣子寫 ![]()
< class="code">
while(CppWebBrowser1->ReadyState!=Shdocvw_tlb::READYSTATE_COMPLETE) {
Application->ProcessMessages();
}
CppWebBrowser1->OleObject->Document->CharSet='utf-8';
改變CODEPAGE一定要在整個網頁下載完成後才可以更換..所以上面兩行是必須的
不需要REFRESH..WebBrowser本身會自動重新整理一次..不過我試過了一下..
假如網頁的原始檔沒有標明CharSet為何
而您又碰巧使用了自動偵測..網頁可能仍然會出現亂碼..
所以您可能還要多加"當CharSet沒有值時"..預設為繁體中文..
這樣應該就蠻完美了... ![]() 發表人 - >>< face="Verdana, Arial, Helvetica">< >< >
|
geniustom
版主
![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif)
![](images/icon_photo_none.gif) 發表:100 回覆:303 積分:260 註冊:2003-01-03
發送簡訊給我
|
infoman您好..您不需要這麼困擾啦 ![]()
基本上..>>>>> >
|
geniustom
版主
![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif)
![](images/icon_photo_none.gif) 發表:100 回覆:303 積分:260 註冊:2003-01-03
發送簡訊給我
|
剛剛用GOOGLE幫您找了KEY WORD..您可以看看裡面的連結..看看DOCUMENT都是位於哪一個地方 http://www.google.com.tw/search?num=100&hl=zh-TW&q=CppWebBrowser "->Document"&btnG=搜尋&meta=
|
artist1002
高階會員
![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif)
![](images/icon_photo_none.gif) 發表:2 回覆:155 積分:151 註冊:2002-09-26
發送簡訊給我
|
在CppWebBrowser下載完成後指定編碼
Variant disp;
disp = CppWebBrowser1->Document;
disp.OlePropertySet("charset","_autodetect_all"); //自動選取
其中_autodetect_all是自動選取
其他編碼語系請自行修改
|
infoman
一般會員
![](./myimg/board/mystar_empty.gif)
![](images/icon_photo_none.gif) 發表:2 回覆:4 積分:1 註冊:2004-10-27
發送簡訊給我
|
謝謝兩位大大熱心的回答. 問題已經解決. ![]() > 編碼指式,
|