Debianサーバ上のPHPでUTF-8文字列に問題があります。詳細でDebianサーバ上のPHP DOMに関するUTF-8問題
アップデートは
I'veは少しより多くのテストを行って、状況は今より具体的です。状況に合わせてタイトルと詳細を更新しました。応答に感謝し、問題が明確に説明されていなかったことを謝ります。次のスクリプトは、私のローカルのWindowsマシン上ではなく、私のDebianサーバ上で正常に動作します:
<?php
header("Content-Type: text/html; charset=UTF-8");
$string = '<html><head></head><body>UTF-8: ÄÖÜ<br /></body</html>';
$document = new DOMDocument();
@$document->loadHTML($string);
echo $document->saveHTML();
echo $string;
予想したように、私のローカルマシン上の出力は次のとおりです。
UTF-8: ÄÖÜ
UTF-8: ÄÖÜ
私のサーバー上での出力は次のようになります。
UTF-8: ÄÖÜ
UTF-8: ÄÖÜ
私はBOMのないUTF-8でNotepad ++でスクリプトを書いて、SSHで転送しました。 guidoが気づいたように、文字列自体は適切にUTF-8でエンコードされています。 PHP DOMやlibxmlに問題があるようです。その理由は、マシンに依存するため、設定が必要です。
オリジナル質問
私はWindows上でXAMPPでローカルに動作し、すべてが正常です。しかし、サーバーにUTF-8文字列を使ってプロジェクトを展開すると、すべての文字列が乱れてしまいます。実際にこのテストスクリプトをアップロードすると、
echo utf8_encode('UTF-8 test: ÄÖÜ');
私は "ÃÃ"を取得します。また、パテとサーバーに接続すると、ウムラウト(ÄÖÜ)をシェルに正しく書き込むことができません。私はこの問題がPHP関連であるのかどうか分かりません。
質問の範囲が間違っていて、最終的にそれに答えるのは申し訳ありません。残念ながら、この問題はlibxmlに関連していました。 –