自从用了GODADDY空间  动易或多或少的遇到些问题  都已经解决 但是最近发现在GODADDY空间下动易生成的静态页面百度收录的快照都是乱码 
经过几天摸索  终于找到解决方法 现在分享给大家。
一,百度收录乱码的原因:
百度收录乱码的原因很多,但是大多数都是编码问题。动易也不例外。动易默认的编码是GB2312,这种情况在动态页面下是没有什么问题的,但是生成静态的时候可能是由于GODADDY服务器对GB2312编码的 支持问题导致生成的页面不是GB2312编码的,而是UNICODE编码。这种编码的网页有个显著的特点,就是用IE浏览器查看编码的时候,他自动选取UNICODE 并且该选项是灰色,不能更改,如下图。
而并不是看网页源代码中<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  charset并不能决定网页的编码 他只是起到告诉浏览器网页采用的什么编码  如果charset与网页实际编码不符 那么不会影响浏览 但是百度蜘蛛就会误判断 造成快照乱码。
那么动易为什么只有百度快照乱码,而GOOGLE等快照正常呢,这主要是百度不支持UNICODE编码的原因造成的,大家可以做这么个实验,把收录乱码的HTML页面下载到本地  再用DW转换成GB2312或者UTF-8编码,会发现  UNICODE编码的网页体积比转换后大了整整一倍,一个SEO群里的高手说这就是百度不支持UNICODE的原因,百度太抠门了,UNICODE编码的网页太占资源。
二,解决方法:
找到问题的原因,就好解决了。既然是生成的时候自动生成了UNICODE编码的网页,那么我们让他生成GB2312或者UTF-8编码的不就解决问题了吗。
我们可以强制动易生成GB2312编码的网页 具体操作方法如下:
1,首先修改Include目录下PowerEasy.FSO.asp文件,有两个地方要修改。
修改函数:WriteToFile 和 WriteToFile_FSO
代码:
Sub WriteToFile(WriteToFileName, WriteToFileContent)
    Dim ErrMsg
    ErrMsg = WriteToFile_FSO(WriteToFileName, WriteToFileContent)
    If ErrMsg <> "" Then
        ErrMsg = WriteToFile_ADO(WriteToFileName, WriteToFileContent)
        If ErrMsg <> "" Then
            Response.Write "<li>生成 " & WriteToFileName & " 时出错。出错原因:" & ErrMsg & "</li>"
        End If
    End If
End Sub
修改为:
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(WriteToFileName, WriteToFileContent)
    On Error Resume Next
    Err.Clear
    Dim hf
    Set hf = fso.OpenTextFile(Server.MapPath(WriteToFileName), 2, True)
    hf.Write WriteToFileContent
    hf.Close
    Set hf = Nothing
    If Err Then
        WriteToFile_FSO = Err.Description
        Err.Clear
    Else
        WriteToFile_FSO = ""
    End If
End Function
修改为:
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
2,修改与生成相关的ASP文件,强制生成GB2312编码。
修改方法:在下面标注的行的)前面加上,"gb2312"
例如:
找到:Call WriteToFile(InstallDir & FileName_SiteIndex, strHTML)
改成:Call WriteToFile(InstallDir & FileName_SiteIndex, strHTML,"GB2312")
需要修改的文件及行数和该行代码功能
Include目录下:
PowerEasy.CreateJS.asp        第450行       
Admin目录下:
Admin_CreateSiteIndex.asp        第39行   网站主页
Admin_CreateCommon.asp          第192行  栏目页     第86行  频道主页
                                第334行   生成专题列表
Admin_Class.asp,  第3388 行 第 3392行  第3436行 第3440行 第3444行              生成JS
Admin_CreateArticle.asp        第321行          文章内容页
Admin_CreateSoft.asp         第164行            软件内容页
Admin_CreatePhoto.asp        第270行            图片内容页
Admin_Skin.asp              第889行    第902行         网站风格管理
Admin_Advertisement.asp     第1443行               网站广告管理
Admin_CreateOther.asp   第277行 第405行 第530行  第655行  第894行   第949行  第1079行   网站生成管理下 生成网站综合数据(XML等)
Admin_Special.asp      第1083行                     刷新专题JS
Admin_CreateXml.asp       第194行                  更新栏目XML数据
Admin_CreateSiteSpecial.asp  第104行 第127行          生成专题页列表
修改这些基本上就能解决生成问题了 如果大家以后再发现别的功能出现如下图所示的错误提示时,大家接着修改提示的相应行即可。
通过以上修改,动易就能完美生成GB2312编码的网页了,同样方法也可以指定生成UTF-8编码的网页。
至此为止 ,动易在GODADDY上出现的所有问题全部解决。
原文地址:http://bbs.idcspy.org/thread-92521-1-1.html
相关文章
千博网站系统godaddy子目录安装cookies的设置2012-11-26
godaddy iis7空间500错误显示具体内容的方法2012-11-03
GoDaddy主机500错误解决方法教程2012-10-10
Godaddy Windows主机asp程序连接数据库路径的解决办法2012-10-10
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