0

假设我有页面 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) 版本都损坏了。还有什么我想念的吗?

4

1 回答 1

1

我认为您可以通过阅读此问题的解决方案来获得答案:内部字符串编码

通过利用Reponse.Codepage,您可以影响发布变量的解释方式。据我了解,您可以然后切换回您喜欢的任何编码。


[更新]

因为您使用的是 iframe,所以在将请求发送回服务器时,浏览器会处理编码。并且浏览器(据我所知)以与原始页面相同的编码发送数据。因此,如果包含 iframe 的页面 A 具有 charset=Korean 我相信数据是使用韩语编码发送的。

字符集是否在页面 A 的 html 标记中定义?如果没有,请添加它,然后尝试在页面 B 中使用相同的内容。

<meta charset="utf-8"> 

此外,由于“테스트”是受FILE编码影响的字符串文字,请确保以适当的编码保存 asp 文件。

于 2013-02-06T14:21:55.487 回答