我在后端运行 ColdFusion 并像这样包装我的页面:
<cfsavecontent variable="renderedResults"><p>hello</p></cfsavecontent>
<cfscript>
compressedHTML = reReplace(renderedResults, "\>\s+\<", "> <", "ALL");
compressedHTML = reReplace(compressedHTML, "\s{2,}", chr(13), "ALL");
compressedHTML = reReplace(compressedHTML, "\s{2,}", chr(09), "ALL");
variables.alredayBinary = "false";
</cfscript>
<cfif cgi.HTTP_ACCEPT_ENCODING contains "gzip">
<cfinvoke component="services.utils" method="gzip" stringToZip="#compressedHTML#" returnvariable="compressedHTML"></cfinvoke>
<cfheader name="Content-Encoding" value="gzip">
<cfset variables.alredayBinary = "true">
</cfif>
<cfheader name="Content-Type" value="text/html; charset=ISO-8859-1">
<cfheader name="Content-Length" value="#len(compressedHTML)#" >
<cfif variables.alredayBinary EQ "false">
<cfcontent reset="no" variable="#ToBinary(compressedHTML)#" />
<cfelse>
<cfcontent reset="no" variable="#compressedHTML#" />
</cfif>
<cfreturn />
尽管这对我来说很有意义并且似乎在最新的浏览器上运行良好,但我只是让用户使用 Internet Explorer 6 产生了一系列错误消息。
我收到的信息是:
The parameter 1 of function ToBinary, which is now <HTML STRING> must be a Base-64 encoded string
这告诉我,我最终得到variables.alredayBinary = false
应该将 HTML 字符串转换为二进制编码字符串。
问题:
我不确定我理解什么toBinary
。不就是为了那个 - 获取 HTML 并转换它吗?那么为什么会出错呢?为什么只在 IE6 上?我只能测试运行良好的 IE8。
感谢您的一些提示!