这里需要显式解码吗?

时间:2015-11-19 14:03:49

标签: java html security browser decoding

假设我在HTML中使用以下代码显示转义值:

     <c:out value="${person.name}" />

我的问题是我需要手动解码服务器端的这个值,还是浏览器会自动解码?

2 个答案:

答案 0 :(得分:1)

不,您无需手动解码此值。您只需要:

  1. 将HTTP响应内容类型编码指定为UTF-8。准确使用#wrapper { width: 100%; height: 90%; } #divheader { width: 100%; height: 10%; } #leftsection { font-family: 'Source Sans Pro', "Helvetica Neue", Helvetica, Arial,sans-serif; float: left; width: 10%; height: 100%; flex-align: baseline; } #middlesection { float: left; width: 90%; height: 100%; }
  2. 您的JSP应该在JSP中将内容类型编码设置为UTF-8。准确地在JSP中添加此元标记,您应该好好去HttpServletResponse.setContentType ("text/html;charset=utf-8");
  3. 当您在JSP中有此标记时,浏览器将理解该页面的内容应按照UTF-8编码规则进行呈现。

    如果不使用这些元标记或其他机制明确指定页面编码,则浏览器在页面呈现时使用与其关联的默认编码,您可能看不到预期结果,特别是对于来自Unicode的字符先进的BMP和补充多语言平面块。 Check this on how to see the default encoding of browser

    <小时/>

    概念

    服务器应在&#34;响应流&#34;中指定所需的编码方案。在JSP / ASP / HTML页面中应该使用相同的编码方案。

    服务器端编码选项

    <强> PHP <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>

    <强>的Perl  header('Content-type: text/html; charset=utf-8');

    <强>的Python 使用与Perl相同的解决方案(除非您最后不需要分号)。

    Java Servlets print "Content-Type: text/html; charset=utf-8\n\n";

    <强> JSP resource.setContentType ("text/html;charset=utf-8");

    ASP和ASP.Net <%@ page contentType="text/html; charset=UTF-8" %>


    客户端编码选项

    在HTML页面<%Response.charset="utf-8"%>

    中使用以下元标记

    <小时/>

    进一步阅读:

答案 1 :(得分:0)

当我获得转义输入的request.parameter(完成通过)<c:out value="${person.name}" />时,我得到转义值并将其存储在db中。例如: - <script>test</script> is stored as &lt;script&gt;test&lt;/script&gt;现在,当从DB获取值并在浏览器上显示时,它会正确呈现它,即&lt;script&gt;test&lt;/script&gt; is displayed as <script>test</script>