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

Shinpei Ohtani [E-MAIL ADDRESS DELETED]
2007年 2月 1日 (木) 09:48:03 JST


大谷です。

下記の検証ありがとうございます。
取り込む方向で検討したいと思います。


07/01/31 に 武井 美代子<[E-MAIL ADDRESS DELETED]> さんは書きました:
>
> お世話になっております。武井です。
>
> 続けての投稿失礼いたします。
>
> Teeda-1.0.3を使用しています。
>
> outputTextを使用して、「\」文字を出力したいと思っております。
>
> 「&」、「<」、「>」などのHTML特殊文字はエンコードされ、出力されているのですが、
> 「\」文字については、エンコードされていないため、
> HTMLの表示上、バックスラッシュになってしまいます。
>
> #org.seasar.teeda.core.util.HTMLEncodeUtil#encode()を拝見しました
>
>
> また、Pageクラスのほうで、「\」文字をエンコードし、出力したところ、
> 「&」文字がTeedaのほうでエンコードされてしまい、
> 「&yen;」→「&amp;yen;」と出力されてしまいました。(表示上は「&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);
> }
>
>
> 以上、ご検討のほど、よろしくお願いします。
>
> 武井 美代子
> [E-MAIL ADDRESS DELETED]
>
>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>


-- 
=============================
Shinpei Ohtani
[E-MAIL ADDRESS DELETED]
=============================



Seasar-user メーリングリストの案内