动易SiteWeaver不支持utf-8编码,需要我们手动修改以便其利于UTF-8编码。
修改过程如下:
一、打开include目录下的PowerEasy.FSO.asp,找到函数WriteToFile和WriteToFile_FSO,修改为如下代码
ASP/Visual Basic代码
- Sub WriteToFile(WriteToFileName, WriteToFileContent, WriteToCharset)
- Dim ErrMsg
- ErrMsg = WriteToFile_FSO(WriteToFileName, WriteToFileContent, WriteToCharset)
- If ErrMsg <> "" Then
- ErrMsg = WriteToFile_ADO(WriteToFileName, WriteToFileContent)
- If ErrMsg <> "" Then
- Response.Write "<li>生成 " & WriteToFileName & " 时出错。出错原因:" & ErrMsg & "</li>"
- End If
- End If
- End Sub
-
- Function WriteToFile_FSO(strFullName,strContent,strCharset)
- On Error Resume Next
- Dim objStream
- Set objStream = Server.CreateObject("ADODB.Stream")
- With objStream
- .Type = 2
- .Mode = 3
- .Open
- .Charset = strCharset
- .Position = objStream.Size
- .WriteText = strContent
- .SaveToFile Server.MapPath(""&strFullName""),2
- .Close
- End With
- Set objStream = Nothing
- Err.Clear
- End Function
-
二、打开start.asp,增加如下代码
ASP/Visual Basic代码
- '网站编码
- Response.CodePage=65001
- Response.Charset="utf-8"
三、使用文件批量查找替换工具,查找所有包含有Call WriteToFile函数的页面,在这个函数后面增加一个页面编码参数“,"uft-8"”。例如:
Call WriteToFile(InstallDir & FileName_SiteIndex, strHTML)则修改成
Call WriteToFile(InstallDir & FileName_SiteIndex, strHTML, "utf-8")
四、使用文件批量查找替换工具,查找所有包含codepage="369"或者codepage=369,替换为codepage="65001"或codepage=65001;查找所有charset="gb2312"或者charset=gb2312,替换为charset="utf-8"或charset=utf-8;
五、下载一个阿勇的 GB/BIG/UTF-8文件编码转换工具 V1.3,把根目录下所有文件的存储格式转换为UTF-8,即可大功告成!
我自己使用至今暂未发现什么问题,但不代表就没有问题,如果您通过这种转换发现了什么问题,欢迎一起交流~
============2010年1月21日修正====================
问题描述:后台编辑器中上传任何图片均提示图片格式不正确。
修正方法:找到include目录下的PowerEasy.Upfile.asp,搜索tStream.Charset = "gb2312"替换成tStream.Charset = "utf-8"
============2010年1月27日修正====================
问题描述:后台自定义函数标签处,点击插入查询到的字段后弹出页面内容空白不显示。
修正方法:找到Admin目录下的Admin_pfield.asp,再页首“<%”后面增加如下代码:
ASP/Visual Basic代码
- Response.CodePage=65001
- Response.Charset="utf-8"
============2010年3月1日修正===================
问题描述:生成广告js代码时候,生成以后的广告JS代码会在开头处出现一个乱码“锘?”。
问题分析:生成广告JS代码时候,会读取ADTemplate目录内的广告模板,但是模板因为转换为utf-8编码后在文件头增加了一个内容为EF BB BF的3字节内容(也就是所谓UTF-8文件的Unicode签名BOM(Byte Order Mark)),而生成JS代码的时候会吧这个BOM的内容作为模板的内容生成,所以就出现了乱码。
修正方法:使用高级文本修改工具,比如UltraEdit-32,打开ADTemplate目录下的所有.Js文件,重新另存为ANSI格式的文本文件,或者选择UTF-8 NO BOM格式,然后重新上传到服务器覆盖原文件,在后台重新刷新所有广告JS代码,问题解决。
遗留问题:覆盖后的广告模板文件,不能通过动易后台的修改模板功能重新修改,否则又会重新出现乱码应当是动易FSO写模板文件的时候会自动增加文件的BOM,擦子不才,未能想到办法解决。不知道哪位大虾能够在代码上解决这个问题,望不吝赐教
相关文章
GODADDY空间动易6.8生成静态页百度收录乱码的解决方法2012-10-08
godaddy安装动易 SiteWeaver CMS6.8教程2012-10-08
siteweaver 6.8 相关文章增加图片显示的解决办法2012-09-27
siteweaver 自定义文章列表字体颜色的设置方法2012-02-24
动易siteweaver验证码修改为4位的方法2012-02-16
siteweaver 栏目地址不显示扩展名2012-02-01
频道一级栏目导航的函数标签-动易siteweaver2010-11-07
动易SiteWeaver去除首页和频道扩展名的方法2010-06-07
Utf-8和Gb2312乱码问题最完美解决方案2010-04-07
动易sitewear频道自定义字段首页不能调用的解决方法2010-01-30