假设我在HTML中使用以下代码显示转义值:
<c:out value="${person.name}" />
我的问题是我需要手动解码服务器端的这个值,还是浏览器会自动解码?
答案 0 :(得分:1)
不,您无需手动解码此值。您只需要:
#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%;
}
。HttpServletResponse.setContentType ("text/html;charset=utf-8");
当您在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 <script>test</script>
现在,当从DB获取值并在浏览器上显示时,它会正确呈现它,即<script>test</script> is displayed as <script>test</script>