中文偽春菜後援會論壇  

打印

[閒聊] 偽春菜的問題與解答

引用:
原帖由 TanisElf 於 2009-7-8 15:37 發表

這個功能是利用httpc.dll寫的,這裡有參考文件:
http://f2abnbase.blog8.fc2.com/blog-entry-1418.html
今天有時間實際測試了下httpc,功能真的不錯,
不過…………這編碼是要怎樣OTZ
傳回的字串一直都是亂碼,雖然有option指定:
引用:
オプション指定
Argument0 にオプションを追加指定できる。元の Argument は後ろへずらす
Argument0 オプション
euc 取得データの文字コードはEUC
jis 取得データの文字コードはJIS
sjis 取得データの文字コードはShift-JIS
erase_tag ページ内のタグを消す
translate_tag タグをさくらスクリプトに変換
但那也只有日文編碼……
那這個是否沒辦法讀到UTF-8碼?;w;
(我都不求他讀GB2312了XDD")


PS:
這個真的蠻有用的……我有很多功能都會利用到這個,
目前一直用笨辦法消除代碼,多少還是有局限性。
如果有能讀UTF-8碼的httpc就好了TT w TT


另:
引用:
原帖由 ~朔~ 於 2009-7-16 00:06 發表
首先感谢猫鱼给出的建议.你做的茶兔我很喜欢,请问里面有些代码(例如说查看系统状态之类的)是否允许我放在我的Kikka里面?本人不会将这样修改后的ghost发布的.

猫鱼的问题是在线提醒,而我的是日历本身的读取记事.应该 ...
代碼的話請隨意拿走修改,我代碼寫很爛啦……囧|||
日曆的讀取記事我的確是有問過,具體哪個帖一時想不起來@@
但SSP官方事件列表里的確是有的,問問google吧@@

[ 本帖最後由 貓魚 於 2009-7-22 00:34 編輯 ]
主頁更新啦:cat-fish.net

TOP

引用:
原帖由 貓魚 於 2009-7-22 00:25 發表
那這個是否沒辦法讀到UTF-8碼?;w;
請到原作者網頁(はるのくまつち ):
http://www.geocities.jp/poskoma/
裡面有個「httpc7」的下載連結,有包含完整的程式說明。(或是直接下載我上傳的檔案)

根據內容,讀入utf8應該是沒問題:
複製內容到剪貼板
代碼:
オプション(暫定):
 引数が1か3の使い方のとき、最初の http://~ の前に以下のオプションを指定できる。
 
  euc    そのページの文字コードがEUCであることを明示。
  jis    そのページの文字コードがJISであることを明示。
  sjis    そのページの文字コードがShiftJISであることを明示。
  utf8    そのページの文字コードがUTF-8であることを明示。
  erase_tag ページ内のタグを消去する(暫定)
  translate_tag タグをさくらスクリプトに翻訳する(極めて暫定)

附件

httpc.txt (5.2 KB)

2009-7-22 05:07, 下載次數: 865

TOP

呀呀,我坦白是從ARIA的人格里偷出httpc的,因為saori collection那邊的作者網站404了@@
看來我的版本太低了,感謝版大~~
不過我遺漏了一個問題,在取得<div style=""></div>這樣的範圍時,
雙引號會使人格當機,單引號同,無引號則讀不到正確的內容……
請問YAYA的話,這該如何寫呢?@@

[ 本帖最後由 貓魚 於 2009-7-22 14:49 編輯 ]
主頁更新啦:cat-fish.net

TOP

引用:
原帖由 貓魚 於 2009-7-22 14:10 發表
呀呀,我坦白是從ARIA的人格里偷出httpc的,因為saori collection那邊的作者網站404了@@
嗯~原作者連結我也是從saori collection那邊找到的(はるのくまつち ),應該是正常才對。
http://umeici.hp.infoseek.co.jp/etcetera/saoricollect.html

至於另一個問題,我這樣寫可以正常執行:
複製內容到剪貼板
代碼:
FUNCTIONEX("saori\httpc.dll","http://www.google.com.tw",'<a href="','"');
引數二後,開始用單引號,這樣可以抓出 <a href="XXXXXXX" 裡面,XXX的部份。

裡面有二個雙引號也沒關係的樣子:
複製內容到剪貼板
代碼:
FUNCTIONEX("saori\httpc.dll","http://www.google.com.tw",'<a href="XXX"','"');
測試人格是橘花2 yaya20080521這個版本,SSP則是日文官方最新版本。

TOP

…………………………………………………………【大扶額】
原來裡頭不能是單引號,我咋就忘了外頭能是單引號呢……!
看來還需多多修煉 ;;;w;;;
主頁更新啦:cat-fish.net

TOP

請記得跳脫符號...「\」
另外也別忘記在AYA中「"」與「'」的含意是不同的w
在SQLite也是...
(與unicode戰鬥中...)

[ 本帖最後由 時原砂 於 2009-7-22 16:55 編輯 ]
末月返想 - 創意的存放處
二次元斷層 - 成果展現之所在

惰性是大敵。

TOP

嗚……不知為何讀取不到正確的編碼呢……
我用來做測試的是這個:(是個中日詞典)
複製內容到剪貼板
代碼:
FUNCTIONEX("saori\httpc.dll","utf8","http://dict.hjenglish.com/jp/",'<title>','</title>');
返回:
複製內容到剪貼板
代碼:
???|  -  ?]??D??
正確的應該是:   日语在线翻译 - 沪江小D日语词典

對方網頁的確是UTF-8碼沒錯,為什麽呢?(我寫錯了什麼嗎||||)

PS:使用「\」的話,會使檢索失效(返回空),不知為何?@@

[ 本帖最後由 貓魚 於 2009-7-22 17:29 編輯 ]
主頁更新啦:cat-fish.net

TOP

試試看把UTF-8參數拿掉,讓系統自己判斷。
不過我測試結果一樣是有缺字,原因尚不明。

TOP

引用:
原帖由 TanisElf 於 2009-7-22 14:53 發表

嗯~原作者連結我也是從saori collection那邊找到的(はるのくまつち ),應該是正常才對。
http://umeici.hp.infoseek.co.jp/etcetera/saoricollect.html

至於另一個問題,我這樣寫可以正常執行:
FUNCTIONEX("saori\httpc.dl ...
最新版在這裡。
http://code.google.com/p/satoriya-shiori/


正在聽着:
水人的格言:
有仇不報非君子!
有水不灌非魔人!

萬事皆可萌,唯有情無價

TOP

最新版依然判定失誤,原因不明。
無論是否指定了utf8,依然都是亂碼。

做了另一個測試:
複製內容到剪貼板
代碼:
FUNCTIONEX("saori\httpc.dll","http://translate.google.cn/",'<title>','</title>');
返回:
複製內容到剪貼板
代碼:
Google ?L?鍊
再來一次:
複製內容到剪貼板
代碼:
FUNCTIONEX("saori\httpc.dll","utf8","http://translate.google.cn/",'<title>','</title>');
返回了空值。

為何呀………………!((((;゚Д゚)))
主頁更新啦:cat-fish.net

TOP

httpc.dll看來只能用在日文模式了。
根據我從除錯工具裡面抓到的訊息,httpc.dll傳回給SSP的是日文編碼,也就是說抓到的資料雖然是UTF-8,


如紅框中,回傳訊息時,httpc自己又把內容從UTF-8轉回日文,結果就導致亂碼或是落字了。
那個額外的選項則沒有什麼作用。

TOP

引用:
原帖由 TanisElf 於 2009-7-22 21:07 發表
httpc.dll看來只能用在日文模式了。
根據我從除錯工具裡面抓到的訊息,httpc.dll傳回給SSP的是日文編碼,也就是說抓到的資料雖然是UTF-8,

1814
如紅框中,回傳訊息時,httpc自己又把內容從UTF-8轉回日文,結果就導致亂碼或是落 ...
source code要重寫:
複製內容到剪貼板
代碼:
        // プラグインを実行
        deque<string>        theValues;
        string        theResult = Saori::getInstance().request(theArguments, theValues);
        theArguments.clear();        // もう使わない


        // レスポンス文字列を作成
        string        theResponce =
                        "SAORI/1.0 200 OK\x0d\x0a"
                        "Charset: Shift_JIS\x0d\x0a";
        theResponce += string("Result: ") + theResult + "\x0d\x0a";

/* ... */

        /* 後処理 */
        InternetCloseHandle(hFile);
        InternetCloseHandle(hInternet);

        // 文字列終端。Unicodeの場合を考えて4byte。
        for (int i=0 ; i<4 ; ++i)
                theData.push_back(0);
       
        oResult.assign(theData.begin(), theData.size());

        // 文字コードの判別・変換
        if ( opt.find("jis") != opt.end() )
                oResult = jis2sjis(oResult);
        else if ( opt.find("euc") != opt.end() )
                oResult = euc2sjis(oResult);
        else if ( opt.find("utf8") != opt.end() )
                oResult = UTF8toSJIS(oResult);
        /*else if ( opt.find("UTF-16LE") != opt.end() )
                NULL;
        else if ( opt.find("UTF-16BE") != opt.end() )
                NULL;*/
        else if ( opt.find("sjis") != opt.end() )
                NULL;
        else
                oResult = convertSomethingToSJIS(oResult.c_str());
P.S.: 在整備班bug track中開ticket了。
http://ssp.shillest.net/bts/gues ... d=56&project=ms


正在聽着:
水人的格言:
有仇不報非君子!
有水不灌非魔人!

萬事皆可萌,唯有情無價

TOP

原來如此,感謝感謝!
等新版\(^o^)/
主頁更新啦:cat-fish.net

TOP

引用:
原帖由 貓魚 於 2009-7-23 13:19 發表
原來如此,感謝感謝!
等新版\(^o^)/
http://code.google.com/p/csaori/ ... k/chttpc/chttpc.cpp
剛開始重寫。
也將時原砂さん加到 maintainers 中了,希望他除了維護 SQLori 外也幫忙一起重寫 httpc。


正在聽着:
水人的格言:
有仇不報非君子!
有水不灌非魔人!

萬事皆可萌,唯有情無價

TOP

引用:
原帖由 Roy 於 2009-7-25 00:29 發表

http://code.google.com/p/csaori/ ... k/chttpc/chttpc.cpp
剛開始重寫。
也將時原砂さん加到 maintainers 中了,希望他除了維護 SQLori 外也幫忙一起重寫 httpc。 ...
雖說如此但我很懷疑我能幫到多少的忙...XD"
今天光是搞定SVN就花了n久的時間 (囧)
末月返想 - 創意的存放處
二次元斷層 - 成果展現之所在

惰性是大敵。

TOP

能者多勞



幸好我什麼都不會XD

[公告] 請不要來這裡求檔案,看到類似討論串內文不問一律刪除
-----------------------------------
啊哈哈   佐祐理不清楚
-----------------------------------
初心者有問題的話請先入內觀看
初心者常見問題區
-----------------------------------
注音文   求檔文   禁止

-----------------------------------
手書Blog~

TOP

引用:
原帖由 時原砂 於 2009-7-25 21:49 發表

雖說如此但我很懷疑我能幫到多少的忙...XD"
今天光是搞定SVN就花了n久的時間 (囧)
svn裝個小烏龜(TortoiseSVN)不就好了 XD


正在聽着:
水人的格言:
有仇不報非君子!
有水不灌非魔人!

萬事皆可萌,唯有情無價

TOP

問題是出在小烏龜死咬著以前下載的某個專案
怎麼刪都刪不掉
上網查了很久還是找不到原因後
只好砍掉重練了...(默)

目前主要在研究gainer的DirectSSTP部份
看能不能寫個完整的類別可供其他專案直接套用
(或者有現成的?)
末月返想 - 創意的存放處
二次元斷層 - 成果展現之所在

惰性是大敵。

TOP

引用:
原帖由 時原砂 於 2009-7-26 00:39 發表
問題是出在小烏龜死咬著以前下載的某個專案
怎麼刪都刪不掉
上網查了很久還是找不到原因後
只好砍掉重練了...(默)

目前主要在研究gainer的DirectSSTP部份
看能不能寫個完整的類別可供其他專案直接套用
(或者有現成 ...
請svn update chttpc。
DirectSSTP已經有class了(CSAORIDSSTP)。
CInetHelper已處理get和check。

P.S.:svn commit時煩請務必把log message打上(這次修改改了什麼…之類),中/英/日文皆可。
這是一個對自己的修改負責任的表現。


正在聽着:
水人的格言:
有仇不報非君子!
有水不灌非魔人!

萬事皆可萌,唯有情無價

TOP

第一次上傳所以還在摸索
結果傳上去後才發現log沒有貼上去
也不知道該怎麼補...(囧)

chttpc的話有點無從下手...
短時間內應該還是會把重心放在Sqlori
末月返想 - 創意的存放處
二次元斷層 - 成果展現之所在

惰性是大敵。

TOP



當前時區 GMT+8, 現在時間是 2018-1-17 14:44

Processed in 0.029524 second(s), 9 queries, Gzip enabled.

清除 Cookies - 聯繫我們 - 中文偽春菜後援會 - Archiver - WAP - TOP - 界面風格