SSL通したらなぜかauだけ文字化け
テンプレ*1
1.[{$count1}/{$count2}]<br> 2.[{$count1}_{$count2}]<br> 3.<font color="red">[{$count1}</font>/{$count2}]<br> 4.<{$count1}/{$count2}><br> 5.<{$count1}ぶんの{$count2}><br> 6.【{$count1}<font color="red">/</font>{$count2}】<br> 7.[102/405]<br> 8.{$strings}
ソース
require("Smartyの設定ファイル"); $string1 = '102'; $string2 = '405'; $strings = $string1.'/'.$string2; $smarty = new Smarty_GB; $smarty->assign("count1",$string1); $smarty->assign("count2",$string2); $smarty->assign("strings",$strings); $smarty->display('テンプレ');
[102/405]
と出したいのだが、これをauの携帯電話でSSLを通して実行させると、こんな感じになる。
- [102◆405]
- [102◆405]
- [102/405]
- <102◆405>
- <102ぶんの405>
- 【102/405】
- [102/405]
- [102/405]
(◆部分は特殊文字。携帯には非表示。エミュレータで追うとコード15なのがわかる。)みたいに化ける。*2。
目に見えるものの表示だけならまだいいが、リンクでgetで飛ばそうと思いきや、
URLの次にくる「?」が化けてしまって先に進めず…だった。
auで非SSL環境だと発生せず。PCや他のキャリアだと問題なし。
で、なぜか8のように、文字列をあらかじめ整形してからassignしたら、問題なし。
ソースの微修正で済むならいいか…すっきりはしないけど。
<form method="post" action="{$Smarty.server.PHP_SELF}?{$Smarty.const.SID}">
みたいなのもNG(?が化ける)。ごりごり修正。