假设我有页面 A,它使用 ks_c_5601-1987(韩语)作为编码和页面 B,使用 UTF-8(韩语)作为编码。我需要将一个字符串变量从 A 传递到 B 是韩语。因为两个页面使用不同的编码,所以当 B 使用 Request() 接收到变量时,变量会变得混乱。
将 A 中的字符串变量传递给 B 时,如何将其编码为 UTF-8?我知道将两个页面都设置为 UTF-8 编码方案是这里最明智的解决方案,但不幸的是,这里不是一个选项,因为页面 A 使用了几个完全依赖 ks_c_5601-1987 编码的 dll。
编辑:查看答案后,我继续尝试了该方法。这是将变量邮箱发送到 get_list_center.asp 的代码:
<!--mail_mail.asp, page in ks_c_5601-1987-->
<%
dim mailbox = "테스트"
Response.CodePage = 65001 'Response.write should now encode the string into UTF-8
%>
...
<frame name="get_list_center" scrolling="auto" marginwidth="0" framespacing="0" marginheight="0" frameborder="0" src="get_list_center.asp?mailbox=<%=mailbox%>">
这就是我在 get_list_center.asp 中接收变量的方式:
<%
Session.Codepage=65001
Response.CharSet="UTF-8"
response.Write CStr(response.codepage) & "<BR>"
response.Write CStr(session.CodePage) & "<BR>"
response.Write CStr(response.CharSet) & "<BR>"
response.codepage = 949
response.Write mailbox & "<BR>"
response.codepage = 65001
response.Write mailbox & "<BR>"
%>
结果如下:
response.write 的 949 (ks_c_5601-1987) 和 65001 (UTF-8) 版本都损坏了。还有什么我想念的吗?