【问题标题】:populating a textarea with special characters用特殊字符填充文本区域
【发布时间】:2010-10-27 20:12:04
【问题描述】:

我正在使用用户先前的输入填充文本区域。这是从数据库中提取并设置为 textarea 服务器端的内容。

我们似乎遇到了拼写错误和特殊字符组合的问题。如果用户最初输入&#6,当我尝试用它填充我的文本区域时,它只会呈现一个小方块,就像它解释字符编码值一样。

使用以下内容创建 HTML 文件说明了我的问题。

<textarea name"mytextarea">some text &#5 some more text </textarea

这是一个错字,用户打算输入 #5 & #6 所以解决这个问题只是为了确保当用户在我的两边都有一个空格在我将它显示在文本区域之前。它只是一个特殊的字符问题,从我习惯看到的东西倒退。

我很好奇是否有办法让文本区域显示用户输入的字符并通过表单提交保留它。为了节省在放入 textarea 之前必须解析或 html 编码文本的开销。

谢谢, 很多

【问题讨论】:

    标签: html textarea special-characters


    【解决方案1】:

    在textarea 中,您需要将以下字符转换为其 HTML 实体:

    & => &amp;
    > => &gt;
    < => &lt;
    

    这样,&amp;amp;#5 将变为 &amp;amp;#5。在视觉上,对于用户来说,它仍然是&amp;amp;#5。

    您没有指定您正在使用的服务器端语言。在 PHP 中,正确的函数是 htmlspecialchars()

    【讨论】:

    • 我会尝试设置一个测试来验证这一点,但如果转换为 html 实体然后通过 javascript 复制到另一个 textarea 然后提交,处理表单的页面会收到 或 $amp;# 6 ?这就是我可能会遇到问题的地方。
    • 如果您的 HTML 包含 &lt;textarea&gt;&amp;amp;#6&lt;/textarea&gt;,那么用户将看到一个包含文本 &amp;#6 的文本框,如果他们提交,服务器将收到文本 &amp;#6。这就是您必须在页面中指定 & 字符的方式,而不是开始 HTML 实体的转义字符。
    【解决方案2】:

    将 & 转义为 &amp;amp;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-18
      • 1970-01-01
      • 2011-07-04
      • 2023-03-21
      相关资源
      最近更新 更多