您当前位置:桂林网站建设 > 新闻资讯
UTF-8编码ASP页面 输出 GB2312 (GBK)编码的变量
Time:2014-9-10 上午 10:56:14

我自己的页面用的是UTF-8编码。但是问题是在这个页面下,其中有一段变量要用到md5加密后传出,对方用的是gb2312的编码,此md5处理带有中文的变量,则加密结果和对方用此变量的加密结果不同。其原因在于变量传出去时是UTF-8的内码,对方收到后用gb2312解释。因此要解决这个问题,一定要在加密前把变量转为gb2312的编码。

网上找了N多的方法,包括用各种utf2gb的函数。。均为无效或差强人意,有的虽然编码加密成功了,但传到对方显示出来是组乱码。

正当山穷水尽之际,突然发现可以在同一个页面中进行代码编码方式的切换。这样可以保证整个网站页面编码不变的情况下,对页面中的某一个变量或部分代码段使用不同的的编码方式:

如下页面:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> 
<% 
  Response.CodePage=65001  
  Response.Charset="UTF-8"   
%> 
<!--#include file="md5.asp"--> 
<% 
DIM A : A="中文" 
Dim B  
Response.write(A&"<br>") 
B=md5(A) 
Response.write(B&"<br>") 
  
' 开始改变编码方式 
response.codepage=936 
response.charset="GBK"    
Response.write(A&"<br>")  
B=md5(A)   
Response.write(B&"<br>") 
  
  
'恢复编码方式  
response.codepage=65001 
response.charset="utf-8" 
Response.write(A&"<br>") 
B=md5(A) 
Response.write(B&"<br>") 
%> 


运行结果如下: 其中的乱码其实是gb2312的编码在utf-8页面下显示的内容,如果接收方是gb2312,则可以正确显示。
中文
249ba6277758050695e8f5909bacd6d3
????
f3b679619b195beba139fcbb4b486630
中文
249ba6277758050695e8f5909bacd6d3

 

另外:jquery一般只是在"utf-8"下正常。

最新资讯