die_message() の出力が EUC-JP で固定されているため文字化けする

メッセージ

die_message() は 'charset=euc-jp' をハードコーディングしていますが、出力に際して文字コードの変換を行っていないため文字化けが発生することがあります。

案1: charset は LANG 定数を参照する

UTF-8 版は charset=UTF-8、EUC-JP 版は charset=EUC-JP を出力するようにすれば問題が解消されます。

案2: Shift_JIS に変換して出力する

die_message() は携帯に対して出力される可能性もある…と認識しています。

ドコモとソフトバンクの機種は UTF-8 にほぼ対応していますが、au には UTF-8 に対応していない機種が存在するため Shift_JIS で出力するほうが安全です。

(2015 年発売の GRATINA2 がおそらくこれに該当します)

案3: US-ASCII 以外出力しないことにする

US-ASCII の範囲外の文字を置換してしまえば、そもそも charset を出力する必要がなくなります。




トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-11-01 (火) 11:22:27
Site admin: PukiWiki Development Team

PukiWiki 1.5.3+ © 2001-2020 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u12. HTML convert time: 0.155 sec.

OSDN