by 清泉
10. 十月 2008 09:43
昨天下午给万博企业管理系统换一下编辑器,改为用ewebeditor了,但出现一个问题,正常编辑文字的时候提交不出现乱码,但上传图片或别的文件后,页面就会出现乱码并提示出错。遇到这样的问题一般都是检查文件的编编码及页面里申明的输出编码。因为我是用ewebeditor编辑器出现这个问题的,我一直把思路停留在检查编辑器处理上传图片及附件的过程那,把那处理此过程的代码及文件全处理成了UTF-8模式,重新再上传图片存储编辑器中内容进入数据库,但就在这个时候,还是一样出现乱码。
一直在发愁这个问题,当前存储数据页面那,我明明在页面META中用UTF8声明了页面编码,如下:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
在网页的头部也已经加了设置为utf-8脚本的申明,如下:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
但是
读取数据库中的汉字的时候显示的却还是乱码,开始以为是获取的编辑器里面的HTML代码是gb2312的,写了再给获取来的数据添加上转换GB2312编码为utf-8的函数,再保存,可还是乱码。找了好久也没有解决问题。
今天上午头脑清醒点了,再来找原因,最后终于找到问题所在。
总结:
ASP中要改成UTF-8编码不只改一下页面的字符设置,如果是动态页面,要从数据库中读取汉字。还要在编码声明里设置为UTF-8。虽然在网页的头部已经申明了<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>,但有些时候他好像不太起作用,最好自己再加上下面的代码来强行设置他脚本的语言。
<%
Session.CodePage = 65001 '脚本UTF-8编码
%>
我把上面的代码加在const.asp文件里面,再在编辑器里面上传图片进行保存数据入库的时候就不出现乱码了。
对于动态页面中,文件格式要选用UTF-8编码,内容输出使用UTF-8编码,在页面中声明页面的编码为UTF-8,还要在程序的全局设置中声明脚本的编码为UTF-8。
如果是因ewbeditor编辑器上传图片保存数据导致的乱码,还有一种解决方法就是把upload.asp里面的Session.CodePage = Session("eWebEditor_Original_CodePage")注销或删除也一样有效的。