台灣最大程式設計社群網站
線上人數
2430
 
會員總數:246203
討論主題:189776
歡迎您免費加入會員
討論區列表 >> ASP >> 關於FSO生成html的問題
[]  
[我要回覆]
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
關於FSO生成html的問題
價值 : 20 QP  點閱數:1683 回應數:21
樓主

冷逸雲
初學者
90 61
640 116
發送站內信

小弟有個利用FSO生成html的程序
檔案本身是存成UTF-8的,網頁內也又加上<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
資料庫是mdb,資料表欄位的Unicode編碼為"是",要生成的內容存在資料庫裡
在本機IIS 5.1上測試是正常的,能順利生成,且內容無誤

但上傳到虛擬主機上測試卻出現500 - Internal server error的錯誤訊息
小弟相信一定是出在編碼的問題上
因為小弟將要生成的內容修改為只有以下三行

<html>
<head>
<title>test</title>

就能順利生成
但把<title>裡的"test"改成中文的"測試"就又是500 - Internal server error的錯誤訊息

小弟真的不知道還能改哪裡了,也爬過文,不知道究竟是哪裡出問題,請各位大大給小弟解答
另外說明
虛擬主機商是HostGator,主機的預設環境請求編碼跟回應編碼都是UTF-8沒更動過
怎麼會這樣呢???

搜尋相關Tags的文章: [ FSO ] , [ 生成html ] , [ 編碼 ] ,
本篇文章發表於2015-07-28 21:19
1樓
作者回應

冷逸雲
檢舉此回應
另外忘了說,在出現500 - Internal server error的錯誤訊息時,事實上是有生成的,只是檔案的大小是0byte
本篇文章回覆於2015-07-28 21:23
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

老頑童
捐贈 VP 給 老頑童 檢舉此回應
在IE中點選
工具->網際網路選項->進階
將「顯示易懂的HTTP錯誤訊息」取消掉
再看看有沒有詳細的錯誤訊息可供參考

不知你的程式中有沒有用到CHR(), MID()之類的函數?
依你的描述
有可能主機商用的主機作業系統是英文版,屬於SBCS(Single byte character set)
而中文是屬於double byte
所以CHR()之類函數在Single byte環境下處理中文時就會出現超出索引的錯誤,在中文系統則不會有問題
若是上述原因,可能得改用CHRB(), MIDB()之類的函數
本篇文章回覆於2015-07-29 12:00
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

冷逸雲
檢舉此回應
謝謝老頑童的回覆
小弟確認過沒使用您說的函數耶
目前就只有以下這小段而已
其他都還沒寫就有問題了



除了函數的問題以外還會有甚麼可能呢????
本篇文章回覆於2015-07-29 12:41
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

老頑童
捐贈 VP 給 老頑童 檢舉此回應
建議先設定IE
有錯誤訊息才比較好判斷是什麼問題
本篇文章回覆於2015-07-29 13:16
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

冷逸雲
檢舉此回應
不管是IE還是Chrome
都只有簡單兩行字

500 - Internal server error.
There is a problem with the resource you are looking for, and it cannot be displayed.
本篇文章回覆於2015-07-29 13:29
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應

老頑童
捐贈 VP 給 老頑童 檢舉此回應
在IE中點選
工具->網際網路選項->進階
將「顯示易懂的HTTP錯誤訊息」取消掉

這個設了也沒顯示嗎?
本篇文章回覆於2015-07-29 14:06
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
作者回應

冷逸雲
檢舉此回應
是的...都沒顯示..我的IE11我朋友的IE9
都是那兩行....
主機商的不淺顯易懂的HTTP錯誤訊息也太淺顯...難懂了吧!!!
暈了...
本篇文章回覆於2015-07-29 14:14
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
回應

老頑童
捐贈 VP 給 老頑童 檢舉此回應
大概從IIS那邊設定成不傳錯誤訊息了

23行先改成下面這樣看有沒有用吧
Set fout = fso.CreateTextFile(server.mappath(FILENAME), true, true)

若還不行,就只能用Response.end慢慢去試錯誤是發生在哪一行了
本篇文章回覆於2015-07-29 14:44
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
作者回應

冷逸雲
檢舉此回應
老頑童大大
小弟剛剛用他們官網的Live chat
用很爛的英文講了一些對方似乎能理解的話...
然後對方開了傳送錯誤訊息的功能,並且看了我的code之後跟我說應該是codeing編碼問題?????(應該吧!我的理解是這樣)
於是我reload之後..果然有錯誤訊息出來
錯誤訊息如下:
An error occurred on the server when processing the URL. Please contact the system administrator.
If you are the system administrator please click here to find out more about this error.

Click here 之後連到微軟的網頁http://www.iis.net/learn/application-frameworks/running-classic-asp-applications-on-iis-7-and-iis-8

所以好像沒有解決到問題



另外
強制檔案Create成unicode可以順利生成Html,中文也顯示正常
所以小弟就將原本要生成的內容一口氣加上去
結果發現css沒作用耶
本篇文章回覆於2015-07-29 16:01
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
回應

老頑童
捐贈 VP 給 老頑童 檢舉此回應
css是由client端瀏覽器處理,應該不太可能沒作用
建議用瀏覽器的檢視原始檔功能查查看產生的html內容有沒有問題
本篇文章回覆於2015-07-29 16:42
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
作者回應

冷逸雲
檢舉此回應
真的...
檢視原始碼看內容都正常
*.js跟*.css路徑都對
網頁瀏覽起來就是感覺css沒作用
IE如此,chrome也是如此
就連我用自己的手機(safari)瀏覽生成出的那個Html也是一樣...
我回家用我自己的電腦試看看吧...
測試之後結果如何再跟您報告
本篇文章回覆於2015-07-29 17:41
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
12樓
作者回應

冷逸雲
檢舉此回應
老頑童大大...
我在本機測試也是如此耶
css似乎沒作用

您不彷測試瀏覽看看
http://upload.lucky516888.com/News/News_6.html (unicode)
http://upload.lucky516888.com/News/News_7.html (ANSI)

這兩個Html原始碼是一樣的
CSS路徑跟JS路徑都沒錯

建議開6之後,刪除暫存,再開7
然後再倒過來開7,刪除暫存,再開6
您就明白小弟說的了
順便可以查看一下CSS跟JS路徑位置,確定都沒錯
本篇文章回覆於2015-07-29 21:16
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
13樓
回應

迷路
捐贈 VP 給 迷路 檢舉此回應
是編碼問題喔
News_6.html我開啟時,瀏覽器預設的編碼是UTF-16LE,而.css和.js又是各自不同的編碼
這導致瀏覽器沒辦法正確解讀其內容,我把網頁編碼改成UTF-8版型就有出來
猜測應該是網頁原始碼的編碼有問題導致瀏覽器誤判

News_7.html就更慘了,原始碼中直接表明要用UTF-8開啟,但實際上網頁的編碼卻是BIG5.....
本篇文章回覆於2015-07-30 09:59
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
14樓
作者回應

冷逸雲
檢舉此回應
謝謝迷路大大的回覆

News_7.html的部分小弟知道...那是FSO生成檔案的時候預設的ANSI

至於News_6.html的部分我想您應該沒看清楚小弟跟老頑童大大的討論串,

存成UTF-16LE瀏覽器會誤判...這點小弟長知識了
也就是說網頁存成ANSI或者UTF-8瀏覽器就不會誤判...它只會誤判UTF-16LE嗎?...是這意思嗎?
那這樣的話有什麼特別的情況存成UTF-16LE才有意義呢

另外請迷路大再幫小弟看一下小弟跟老頑童的討論內容好嗎?
或者迷路大可以幫你小解惑...找出問題
感謝您!!
超困擾的
本篇文章回覆於2015-07-30 11:07
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
15樓
最有價值解答

老頑童
捐贈 VP 給 老頑童 檢舉此回應
我用IE8開,正常,但用Chrome開則有問題

你試試用記事本(NotePad)開啟html檔
然後選「另存新檔」,看最下面的「編碼」是不是Unicode?
是的話改選成「UTF-8」後存檔,再試試看會不會正常

若改了後正常,那有可能就不能用fso的CreateTextFile了
也許改用ADODB.Stream方式試試,範例如下列網址
http://wiki.mcneel.com/developer/scriptsamples/readutf8
本篇文章回覆於2015-07-30 12:00
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   

回覆
如要回應,請先登入.