/ja あやつる YmrDhalmel

バレーボールを見た記録が多いです。主に北で、たまに南で。

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を通して実行させると、こんな感じになる。

  1. [102◆405]
  2. [102◆405]
  3. [102/405]
  4. <102◆405>
  5. <102ぶんの405>
  6. 【102/405】
  7. [102/405]
  8. [102/405]

(◆部分は特殊文字。携帯には非表示。エミュレータで追うとコード15なのがわかる。)みたいに化ける。*2

目に見えるものの表示だけならまだいいが、リンクでgetで飛ばそうと思いきや、
URLの次にくる「?」が化けてしまって先に進めず…だった。
auで非SSL環境だと発生せず。PCや他のキャリアだと問題なし。

で、なぜか8のように、文字列をあらかじめ整形してからassignしたら、問題なし。

ソースの微修正で済むならいいか…すっきりはしないけど。

<form method="post" action="{$Smarty.server.PHP_SELF}?{$Smarty.const.SID}"> 

みたいなのもNG(?が化ける)。ごりごり修正。

*1:ヘッダとかは省略しとります

*2:不思議なことに3が化けないのは、fontタグが防波堤になっているのかもしれない。