2016-02-13 97 views
0

我試圖在ASP中實現RC4 encription,但是我在chr()函數中發現了一個奇怪的行爲。經典asp chr()函數問題

但該問題與RC4腳本無關,但與我無法解決的問題有關。

且不說所有的測試中,我已經做了,我可以riproduce的問題在一個非常簡單的形式:

我只是在2頁寫道

<%=chr(146)%> 

,讓說L2.asp和L3.asp

頁L2.asp顯示'從而HTML &rsquo;

頁L3.asp顯示�

顯然這兩個頁面都在同一臺服務器上(Windows Server 2012 R2),但是 看來頁面L3.asp不能識別擴展的ASCII表。

我試着在上面添加<% Response.Charset="ISO-8859-1"%> ..和許多其他的解決方案,但沒有改變..

雖然劇本很簡單(但也測試了RC4常規較長腳本),如果我複製L2的內容。 asp在L3.asp或反之亦然,頁面的行爲保持不變,因此,L2.asp連續顯示'而L3顯示�,並且更改頁面名稱不會改變行爲。

確實有一些想法可以創造這種奇怪的行爲?

非常感謝任何提示

回答

4

這不是Chr功能。
�UTF8-BOM對於UTF-8文件是可選的。
首先嚐試在沒有BOM的UTF-8中保存ASP文件。您可以使用Notepad ++之類的高級編輯器。
請按照以下步驟操作:Open "file.asp" > Encoding > Convert to UTF-8,然後File > Save

Response.Charset只是將字符集的名稱追加到Content-Type響應標頭,並在服務器端不做任何事情。
相反,您必須指定Response.CodePage = 1252

+0

Yesss!非常感謝!你救了我的一天 – Joe