我发现[动网新闻]的系统在录入文章的时候htmlencode,读出来的htmldecode.
这样增加了负担,变慢了速度,到底有没有必要。
另外我自己现在也是照他这么做的,但是发现[英文空格]入库之后都会变成[问号]“?”,
非常奇怪,我应该怎么做呢。

解决方案 »

  1.   

    htmlencode是为了安全而使用的,防止一些脚本攻击
      

  2.   

    就是说把文章内容htmlencode根本没用吧,那么我的问号问题怎么办,
    还有我怎么把以前库里面encode过的文章都decode之后保存呢,我的文章都是存在text字段中
      

  3.   

    asp中常用的方法,根据说明,你可以取舍用不用1、HTMLEncode 方法    HTMLEncode 方法允许你对特定的字符串进行 HTML 编码,虽然 HTML 可以显示大部分你写入 ASP 文件中的文本,但是当你需要实际包含 HTML 标记中所使用的字符,就会遇到问题。这是因为,当浏览器读到这样的字符串时,会试图进行解释。例如下面的这段文本 : 
       这是对 HTMLEncode 方法的测试。< br> 这里应该不会另起一行。    会被浏览器显示为 :    这是对 HTMLEncode 方法的测试。 
       这里应该不会另起一行。    为了避免此类问题,我们就需要使用 Server 对象的 HTMLEncode 方法,采用对应的不由浏览器解释的 HTML Character Code 替代 HTML 标记字符。所以,用下面的代码才能显示正确的 HTMLEncode 字符串,从而在浏览器中按你的需要输出文本。 
      < %
      Response.write Server.HTMLEncode(" 这是对 HTMLEncode 方法的测试。< br> 这里应该不会另起一行。")%>   2、URLEncode 方法    就象 HTMLEncode 方法使客户可以将字符串翻译成可接受的 HTML 格式一样,Server 对象的 URLEncode 方法可以根据 URL 规则对字符串进行正确编码,当字符串数据以 URL 的形式传递到服务器时,在字符串中不允许出现空格,也不允许出现特殊字符。为此,如果你希望在发送字符串之前进行 URL 编码,可以使用 Server.URLEncode 方法。 
       3、MapPath 方法    MapPath 方法将指定的相对或虚拟路径映射到服务器上相应的物理目录上。    语法如下 :Server.MapPath(Path)    Path 指定要映射物理目录的相对或虚拟路径。若 Path 以一个正斜杠 (/) 或反斜杠 (\) 开始,则 MapPath 方法返回路径时将 Path 视为完整的虚拟路径。若 Path 不是以斜杠开始,则 MapPath 方法返回同 .asp 文件中已有的路径相对的路径。这里需要注意的是 MapPath 方法不检查返回的路径是否正确或在服务器上是否存在。   对于下列示例,文件 data.txt 和包含下列脚本的 test.asp 文件都位于目录 C:\Inetpub\Wwwroot\asp 下。C:\Inetpub\Wwwroot 目录被设置为服务器的宿主目录。下列示例使用服务器变量 PATH_INFO 映射当前文件的物理路径。以下脚本 
       < %= server.mappath(Request.ServerVariables("PATH_INFO"))%>    输出    c:\inetpub\wwwroot\asp\test.asp    由于下列示例中的路径参数不是以斜杠字符开始的,所以它们被相对映射到当前目录,此处是目录 C:\Inetpub\Wwwroot\asp。以下脚本 
      < %= server.mappath("data.txt")%>
      < %= server.mappath("asp/data.txt")%>
       输出 
    c:\inetpub\wwwroot\asp\data.txt
    c:\inetpub\wwwroot\asp\asp\data.txt
       4、CreateObject 方法    Server.CreateObject 恐怕是 ASP 中最为实用,也是最强劲的功能了。它用于创建已经注册到服务器上的 ActiveX 组件实例。这是一个非常重要的特性,因为通过使用 ActiveX 组件能够使你轻松地扩展 ActiveX 的能力,正是使用了 ActiveX 组件,你可以实现至关重要的功能,譬如数据库连接、文件访问、广告显示和其他 VBScript 不能提供或不能简单地依靠单独使用 ActiveX 所能完成的功能。正是因为这些组件才使得 ASP 具有了强大的生命力。 
       其语法如下:    Server.CreateObject("Component Name")   默认情况下,由 Server.CreateObject 方法创建的对象具有页作用域。这就是说,再当前 ASP 页处理完成之后,服务器将自动破坏这些对象。如果要创建有会话或应用程序作用域的对象,可以使用 < OBJECT> 标记并设置 SESSION 或 APPLICATION 的 SCOPE 属性,也可以在对话及应用程序变量中存储该对象。如下例程 : 
       < % Set Session("ad") = Server.CreateObject("MSWC.AdRotator")%>    这里需要注意的是,不能创建与内建对象同名的对象实例,否则,如下列脚本将返回错误。    < % Set Response = Server.CreateObject("Response") %>    至今为止,我们已经学习完了 ASP 所有的内建对象,不知大家是不是很兴奋?其实 ASP 是很简单的,只要大家不断的实践,相信一段时间后都不难成为 ASP 的高手。从下一篇起作者将开始介绍 ASP 内建 ActiveX 组件,这也是 ASP 运用中非常重要和实用的一部分。敬请关注。 
      

  4.   

    Encode还可以避免一些http请求字符串中关键字符
      

  5.   

    请不要贴别的文章,我的后台录入的文章本来就是html的,先encode再decode好像没有必要吧。
    还有我都是用存储过程,也可以防止注入了吧
      

  6.   

    我已经决定不用encode了,谁能帮我解决库中已有数据更新成decode之后的数据的问题。
    分就给谁了
      

  7.   

    当我们想在网页上显示HTML 标注时,若在网页中直接输出则会被浏览器解译为HTML 的内容,所以要透过Server 对象的HtmlEncode 方法将它编码再输出;而若要将编码后的结果译码回原本的内容,则使用HtmlDecode 方法。下列程序代码范例使用HtmlEncode 方法将「<B>HTML内容</B>」编码后输出至浏览器,再利用HtmlDecode 方法将把编码后的结果译码还原:<Html>
    <Script Language="VB" Runat="Server">
    Sub Page_Load(Sender As Object,e As Eventargs)
    Dim strHtmlContent As String
    strHtmlContent=Server.HtmlEncode("<B>HTML 内容</B>")
    Response.Write(strHtmlContent)
    Response.Write("<P>")
    strHtmlContent=Server.HtmlDecode(strHtmlContent)
    Response.Write(strHtmlContent)
    End Sub
    </Script>
    </Html> 您的文章系统之所以这么做,是支持html输入的,把输入内容htmlencode,页面输出显示时再htmldecode,输入的html内容可以正常显示,至于英文空格的问题,应该是不会出现这种情况的
      

  8.   

    我也碰见了同样的问题哦!!
    我是用Relace("'","''");
    但是还是有问题,也有"?"
      

  9.   

    写个程序把decode的内容调用htmldecode函数更新一下即可
      

  10.   

    招:项目经理
    三年以上项目经验(B/S和C/S)。
    精通asp.net(C#)。
    精通WebService或Remoting
    能熟练编写复杂TSQL语句。
    能有效控制项目进度,项目成本。
    薪资:3000-5000
    有意者立即致电:028-85157825
    工作地点:成都
    -------------------------
    招asp.net软件工程师
    精通C#语言。至少有一个作品或者参与过一个项目开发。
    能熟练编写复杂TSQL语句。
    熟练使用WebService或Remoting。
    熟练编写需求、设计、测试等文档。
    薪资:2000-4000
    有意者立即致电028-85157825
    工作地点:成都QQ:2675431
    Email:[email protected]
      

  11.   

    用htmldecode又麻烦速度又慢不如在客户端就将HTML代码修改,然后保存到数据库.
    在读数据库内容时,也是在客户端将数据库内容读出来后修改,再显示.