我自己的页面用的是UTF-8编码。但是问题是在这个页面下,其中有一段变量要用到md5加密后传出,对方用的是gb2312的编码,此md5处理带有中文的变量,则加密结果和对方用此变量的加密结果不同。其原因在于变量传出去时是UTF-8的内码,对方收到后用gb2312解释。因此要解决这个问题,一定要在加密前把变量转为gb2312的编码。
网上找了N多的方法,包括用各种utf2gb的函数。。均为无效或差强人意,有的虽然编码加密成功了,但传到对方显示出来是组乱码。
正当山穷水尽之际,突然发现可以在同一个页面中进行代码编码方式的切换。这样可以保证整个网站页面编码不变的情况下,对页面中的某一个变量或部分代码段使用不同的的编码方式:
如下页面:
运行结果如下: 其中的乱码其实是gb2312的编码在utf-8页面下显示的内容,如果接收方是gb2312,则可以正确显示。
中文
249ba6277758050695e8f5909bacd6d3
����
f3b679619b195beba139fcbb4b486630
中文
249ba6277758050695e8f5909bacd6d3
本文介绍了如何在UTF-8编码的ASP页面中,将特定变量转换为GBK编码进行MD5加密,以确保与接收方编码一致。通过设置Response对象的CodePage和Charset属性,实现页面局部编码切换,成功避免了乱码问题。
编码的变量 超级简单&spm=1001.2101.3001.5002&articleId=5683473&d=1&t=3&u=71bfab03b3144f19b94c50e34dab7565)
1780

被折叠的 条评论
为什么被折叠?



