SiteWeaver 6.8 UTF-8版

2010-08-03 浏览:1294
SiteWeaver 6.8 UTF-8版
评论:(0)复制地址

动易SiteWeaver不支持utf-8编码,需要我们手动修改以便其利于UTF-8编码。

  修改过程如下:

  一、打开include目录下的PowerEasy.FSO.asp,找到函数WriteToFile和WriteToFile_FSO,修改为如下代码

ASP/Visual Basic代码

  1. Sub WriteToFile(WriteToFileName, WriteToFileContent, WriteToCharset)    
     
  2. Dim ErrMsg    
     
  3. ErrMsg = WriteToFile_FSO(WriteToFileName, WriteToFileContent, WriteToCharset)    
     
  4. If ErrMsg <> "" Then  
     
  5.   ErrMsg = WriteToFile_ADO(WriteToFileName, WriteToFileContent)    
     
  6.   If ErrMsg <> "" Then  
     
  7.      Response.Write "<li>生成 " &amp; WriteToFileName &amp; " 时出错。出错原因:" &amp; ErrMsg &amp; "</li>"  
     
  8.   End If  
     
  9. End If  
     
  10. End Sub  
     
  11.  
     
  12. Function WriteToFile_FSO(strFullName,strContent,strCharset)    
     
  13. On Error Resume Next  
     
  14. Dim objStream    
     
  15. Set objStream = Server.CreateObject("ADODB.Stream")    
     
  16. With objStream    
     
  17. .Type = 2    
     
  18. .Mode = 3    
     
  19. .Open    
     
  20. .Charset = strCharset    
     
  21. .Position = objStream.Size    
     
  22. .WriteText = strContent    
     
  23. .SaveToFile Server.MapPath(""&amp;strFullName""),2    
     
  24. .Close    
     
  25. End With  
     
  26. Set objStream = Nothing  
     
  27. Err.Clear    
     
  28. End Function  
     
  29.  
     


  二、打开start.asp,增加如下代码

ASP/Visual Basic代码

  1. '网站编码    
     
  2. Response.CodePage=65001    
     
  3. Response.Charset="utf-8"  
     


  三、使用文件批量查找替换工具,查找所有包含有Call WriteToFile函数的页面,在这个函数后面增加一个页面编码参数“,"uft-8"”。例如:
  Call WriteToFile(InstallDir &amp; FileName_SiteIndex, strHTML)则修改成
  Call WriteToFile(InstallDir &amp; 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代码

  1. Response.CodePage=65001    
     
  2. 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,擦子不才,未能想到办法解决。不知道哪位大虾能够在代码上解决这个问题,望不吝赐教

评论:(0)复制地址

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。