2012年11月5日 星期一

最近又用到 asp,幾個筆記需要記


原始文章出自於此



判斷 access 資料庫某個欄位值為 null
我以為用 if cursor.fields(i).value = null then…可以判斷。我錯了。
要用 if isnull(cursor.fields(i).value) then … 才行。

到底權限怎麼開才能寫入?
首先,我的 os 是 windows 7,iis是 7 (應該吧…)
如果是 asp .net 的程式,IIS_USRS 這個使用者要開啟權限到寫入。
如果是 asp 的程式,IUSR 這個使用者要開啟權限到寫入。

如何存取utf-8 編碼的文字檔內容?
asp 直接 openTextFile 是不對的。它會按執行環境的預設值讀寫檔案。
我有改過CODEPAGE="65001",無效。
目前使用 ADODB.Stream 可。
有人提供小函數使用。
Sub Save2File (sText, sFile)
    Dim oStream
    Set oStream = CreateObject("ADODB.Stream")
    With oStream
        .Open
        .CharSet = "utf-8"
        .WriteText sText
        .SaveToFile sFile, 2
    End With
    Set oStream = Nothing
End Sub
Function ReadUtf8File(sFile)
    Set objStream = CreateObject("ADODB.Stream")
    With objStream
        .Charset = "utf-8"
        .Type=2
        .mode=3
        .Open
        .loadfromfile sFile
        ReadUtf8File=.readtext
        .Close
    End With
    Set objStream = Nothing
End Function

使用 javascript 的 escape 的文字,asp 怎麼解?
我基本上放棄了。試了幾次都不成功。這個問題很大,需要前後程式配合(html, javascript, asp)。因此會另外再寫詳細的文章。
簡單來說,我後來轉用 htmlencode。那 javascript 怎麼做 htmlencode 或 htmldecode?
以下有兩個小函數可以使用
function htmldecode(strHtmlEncode){
    var div =  document.createElement('div');
    div.innerHTML = strHtmlEncode;
    return div.innerText
}
function htmlencode(strHTML)
{
    var div = document.createElement('div');
    div.innerText = strHTML;
    return div.innerHTML;
}
asp 的程式,直接取值就好,不用解。

沒有留言:

張貼留言