XMLWordPrintable

    • Type: Improvement
    • Resolution: Fixed
    • Priority: Major
    • None
    • Affects Version/s: None
    • Component/s: None
    • None

      outputTextを使用して、「\」文字を出力したいと思っております。

      「&」、「<」、「>」などのHTML特殊文字はエンコードされ、出力されているのですが、
      「\」文字については、エンコードされていないため、
      HTMLの表示上、バックスラッシュになってしまいます。

      #org.seasar.teeda.core.util.HTMLEncodeUtil#encode()を拝見しました

      また、Pageクラスのほうで、「\」文字をエンコードし、出力したところ、
      「&」文字がTeedaのほうでエンコードされてしまい、
      「¥」→「&yen;」と出力されてしまいました。(表示上は「¥」です。)

      他の機能に差し支えなければ、「\」文字もエンコードしていただきたいと思っております。

      試しに、「\」文字をエンコードする処理をorg.seasar.teeda.core.util.HTMLEncodeUtil#encode()に
      追加したら、うまくいきました。

      public static String encode(final String s, final boolean quote, final boolean amp) {
         char[] chars = s.toCharArray();
         StringBuffer sb = new StringBuffer();
         for (int i = 0; i < chars.length; i++) {
             char c = chars[i];
             if ((int) c == '\u00A0') {
                 sb.append("&nbsp;");
             } else if (c == '\\') {    // 追加
                 sb.append("&yen;");    // 追加
             } else if (c == '<') {
                 sb.append("&lt;");
             } else if (c == '>') {
                 sb.append("&gt;");
             } else if (amp && c == '&') {
                 sb.append("&amp;");
             } else if (c == '"') {
                 sb.append("&quot;");
             } else if (quote && c == '\'') {
                 sb.append("&#39;");
             } else {
                 sb.append(c);
             }
         }
         return new String(sb);
      }
      

      [Seasar-user:5976] [Teeda]HTML特殊文字のエンコードについて)

            Assignee:
            shot
            Reporter:
            shot
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved: