Apache と nginx を使用する plesk-server に php/mysql-application があります。ブラウザを開いて、そのブラウザ セッションで初めて Web サイトにアクセスしたときにのみ、ドイツ語の ä ü などのウムラウテ (特殊文字) が「?」として表示されるという奇妙な問題があります。サイトを更新するとすぐに、ブラウザーを閉じて再度開くまで、再び発生することはありません。
DB over PHP から HTML まで、すべて UTF-8 でエンコードされています。
何を探すべきかヒントはありますか?
Cookie を削除し、ブラウザを閉じてから開いても、それが起こらないことに気付きました。
(完全に UTF-8 でエンコードされた) MySql-DB からのコンテンツでのみ問題が発生し、ログインしている場合にのみ問題が発生することに気付きました...非常に奇妙です!
解決
わかりました、私は自分の過ちを見つけることができなかったときに黙って立ち去る人ではありません! だから、うまくいけば、私のエラーは将来誰かを助けるでしょう:
ユーザーがログインしているときにのみ発生する PDO 接続がありましたが、セッションがタイムアウトしました。このクエリは、Cookie に基づいてユーザーをログインさせます。その SQL 接続では、次のものしかありませんでした。
$db = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass);
それ以外の
$db = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
どうやら、これが全体のエラーでした。