【问题标题】:Escape HTML in Languages with Accented Letters在带有重音字母的语言中转义 HTML
【发布时间】:2017-04-27 14:29:05
【问题描述】:

如果我不想转义重音字符,建议使用 Java 中的哪种 html 转义方法,例如,在字符串“Matías”中,重音 í 应该保持未转义。

StringEscapeUtils.escapeHtml() 和 Springs 的 HtmlUtils.htmlEscape() 都会转义这些字母。

【问题讨论】:

    标签: java html-escape-characters


    【解决方案1】:

    使用 Spring 的 htmlEscape(String input, String encoding),您可以传递像 "UTF-8" 这样的编码。根据 JavaDoc,如果字符采用给定的编码(或者至少我是这样理解的),则字符不会被转义。

    【讨论】:

      【解决方案2】:

      Guava 的 HtmlEscapers.htmlEscaper().escape(inputString) 在没有指定编码的情况下成功了

      【讨论】:

        【解决方案3】:

        使用 Apache commons-text:

           public static final CharSequenceTranslator ESCAPE_CUSTOM =
                 new AggregateTranslator(
                         new LookupTranslator(EntityArrays.BASIC_ESCAPE),
                         new LookupTranslator(EntityArrays.HTML40_EXTENDED_ESCAPE)
                 );
           ESCAPE_CUSTOM.translate(input);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-04-17
          • 2023-03-31
          相关资源
          最近更新 更多