SJIS文字コードハマリ(UTF8+smartyでSJIS表示)

PHP | 2008-03-26  01:32:54

動的なページを作る時、大体システムとデザイン表示で文字コード揃えますよね。
ただ、仕様とかでどうしても統一できない時あります。

この時くせものなのがSJIS。

携帯サイトとかでSJIS対応しているシステムやさんは大変ですね;

えー、携帯サイトではないですが、
PHP(UTF8)+smarty(UTF8)でSJIS表示のサイト作成ではまりました…

まぁ、表示の際にsmartyに渡す値に対して、
mb_convert_encodingで、SJIS変換掛けてあげればいいじゃまいかと思うよね。

ところがどっこぃ。

~(波線)とチルダ(波線っぽいやつ)って違うのに
同一の~(波線)になっちゃった。。ボソ
㎡が表示できません。。ボソ

勝手に変換させられちゃうぽいぉ…

そんなこんなでえらい時間食いましたが、
結局…

SJISじゃなくて、「SJIS-WIN」ってやつにmb_convert_encodingして解決。
これでも完全にはカバー出来ないくさいけどね。
上記の症状は解決したってことれす。

解決するのにめっちゃ時間かかった…。

プログラマのみなさんは文字コードにははまった経験あるもんさね。

ちなみに、PHP(EUC)で表示SJISの時は、
カタカナの「ソ」や、漢字の「予」や「十」の後にが勝手に付くエラーに陥る。
(2バイトめが5cのやつ)

↑これ、個々にstripslashesして対策。

SJIS嫌いになるぜよ。

Leave a Reply

Theme by othico