【问题标题】:Not able to display special characters properly in a JSP page无法在 JSP 页面中正确显示特殊字符
【发布时间】:2011-04-08 17:18:55
【问题描述】:

我需要在表格 TD 中显示以下特殊字符(不包括

1) '/<\/@/test#/$/&/)'

但是,浏览器只能显示 '/ 即,数据被截断。

只有当和/字符连续出现时才会出现上述问题。

也就是说,以下工作,因为在

2) '/<@/test#/$/&/)'

我正在使用 java 代码来转义其他特殊字符。 我能够成功地将

请帮帮我

抱歉,即使在这个网站上,您也看不到我需要实现的目标,因此在第 1 点中排除反斜杠(我需要在没有反斜杠的情况下显示,为了您的理解,我已经说明了)。我是新用户,无法发布图片。

【问题讨论】:

  • 在 Stack Overflow 上,您可以使用反引号 (`)(不要将其与单引号混淆)来转义代码/HTML。

标签: jsp


【解决方案1】:

我通过将这个指令添加到页面来让它在 JSP 上工作

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

【讨论】:

    【解决方案2】:

    默认情况下,JSP 发送的所有内容都会被 Web 浏览器视为 HTML。 &lt; 表示 HTML 标记的开始,因此 Web 浏览器会这样解析它(最终由于语法错误而失败)。

    您想转义那些 HTML 特殊字符,例如 &lt;、&gt;、&amp; 和 "。

    &lt; will be displayed as <
    &gt; will be displayed as >
    &amp; will be displayed as &
    &quot; will be displayed as "
    

    如果是动态文本,最好使用JSTL &lt;c:out&gt;标签。

    <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    ...
    <c:out value="${bean.text}" />
    

    如果要设置 HTML 属性,JSTL fn:escapeXml() function 更好。

    <%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
    ...
    <input type="text" value="${fn:escapeXml(bean.text)}" />
    

    【讨论】:

    • 简单但功能强大的解决方案。非常感谢它解决了我的问题。没想到反应这么快。感谢一百万次。
    • 嗨@BalusC,只想打印“kΩ”,但它不是按原样打印,而是显示“k⦔。当我尝试您的解决方案时,它给出了“文本字符串中使用的字符串无效”,请帮我解决这个问题,谢谢。
    • @Java.beginner:这个问题的原因完全不同,需要完全不同的解决方法。提示:“字符编码”。
    • 感谢@BalusC,在我设置为“pageEncoding="utf8"”后它工作正常,感谢您的时间和帮助。
    猜你喜欢
    • 2012-08-04
    • 1970-01-01
    • 2016-12-21
    • 1970-01-01
    • 1970-01-01
    • 2017-06-25
    • 2017-01-28
    • 1970-01-01
    • 2016-07-25
    相关资源
    最近更新 更多