[PHP-users 27023] Re: smartyのescapeで文字化け

Tadashi Jokagi ml @ elf.no-ip.org
2005年 9月 29日 (木) 15:09:35 JST


      ぢょ〜@よくきたなです.
      Smarty の関連しそうなソースを見る限り

//plugins/modifier.escape.php 
function smarty_modifier_escape($string, $esc_type = 'html')
{
    switch ($esc_type) {
        case 'html':
            return htmlspecialchars($string, ENT_QUOTES);

        case 'htmlall':
            return htmlentities($string, ENT_QUOTES);
(snip)
    }
}

//plugins/modifier.nl2br.php 
function smarty_modifier_nl2br($string)
{
    return nl2br($string);
}

    なので,不必要な文字列操作はされないように見えます.return の前に
    一度どのように文字が変換されるか表示するようにしてみてはいかがです
    か?

ex)
//plugins/modifier.escape.php 
         case 'html':
+            echo $string."=>";
+            echo htmlspecialchars($string, ENT_QUOTES);
             return htmlspecialchars($string, ENT_QUOTES);


//plugins/modifier.nl2br.php 
 function smarty_modifier_nl2br($string)
 {
+    echo $string."=>";
+    echo nl2br($string);
     return nl2br($string);
 }

    ここで妙な加工が入っていなければ他所が悪いわけです.がんばって前後
    の処理を追いかけてください.

-- 
----.----1----.----2----.----3----.----4----.----5----.----6----.----7
Tadashi Jokagi/Shibuya city mailto:elf @ elf.no-ip.org
YokukitanaII http://elf.no-ip.org/
Yokukita blog http://blog.poyo.jp/
Yokukita wiki http://wiki.poyo.jp/


PHP-users メーリングリストの案内