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

  • ページ: BugTrack2
  • 投稿者: bee
  • 優先順位: 低
  • 状態: 完了
  • カテゴリー: 本体バグ
  • 投稿日: 2016-10-27 (木) 15:27:39
  • バージョン: 1.5.1
  • リリース予定バージョン: 1.5.2

メッセージ

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 を出力する必要がなくなります。


  • レポートありがとうございます。
    現象確認しました。確かに、Skinファイルがない場合などにeuc-jp固定になっていました。
    ご提案の中で案1を採用しました。
    CONTENT_ENCODINGが定義されていればそれを利用し、そうでなければutf-8にしています osdn.net:projects/pukiwiki/scm/git/pukiwiki/commits/2e8ab06a83b8787316e4300a425120c3088ed25e -- umorigu 2016-10-30 (日) 00:04:52
  • ありがとうございます! -- bee 2016-10-30 (日) 12:18:28
  • (実装案が複数思いついたので実装前に相談したかったんですが、umorigu さんの手のほうが早かったですね…) -- bee 2016-10-30 (日) 12:20:09
    • 選択肢を提示されていたお陰で悩むポイントがなかったので実装してしまいました。案2、utf-8が表示できないブラウザで見ている場合、サイト設定はeuc-jpと推測できます。このため案1の実装でカバーできます。 -- umorigu 2016-10-31 (月) 09:14:49
  • ところでコミットメッセージの BugTrack/2392 は BugTrack2/392 のミスのような…。 -- bee 2016-10-30 (日) 12:21:29
    • 説明がなくてすみません。BugTrackとBugTrack2を統合したいと思っています。先取りしてコミットメッセージのだけそれっぽく変えてしまいました。 -- umorigu 2016-10-31 (月) 09:18:44
      • 了解です。確かに分離していると古いバグを見逃しがちだったりして弊害が大きいですからね…。 -- bee 2016-11-01 (火) 11:22:27


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

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u7. HTML convert time: 0.251 sec.

OSDN