クラッカーのUTF-8バイト順マークまたはキリル文字の問題

ブラウザーでのキリル文字フォントの誤った表示の問題に直面したか、ブラウザーがエンコードを誤って決定しました。 簡単な分析では、この不便さはZFデバッグプラグインが有効になっている場合にのみ現れることが示されました。 ページのソースコードを見て、プラグインが開始<head>直後にスタイルとスクリプトを接続していること、つまり、ページエンコードに関する情報を持つメタタグに接続していることがわかりました。



状況を修正するには、次のようにファイルライブラリ\ ZFDebug \ Controller \ Plugin \ Debug.phpを修正する必要があります(黒で強調表示)

保護された関数 _headerOutput {
$ collapsed = isset $ _COOKIE [ 'ZFDebugCollapsed' ] $ _COOKIE [ 'ZFDebugCollapsed' ] 0 ;

リターン '
<style type = "text / css" media = "screen">
...
</ script> </ head> ' ;
}


保護された関数 _output $ html
{
...
$ response- > setBody preg_replace '/( <\ / head> )/ i' '$ 1' $ this- > _headerOutput $ response- > getBody ;
...
}

これで、 <meta http-equiv="content-type" content="text/html; charset=utf-8" />は開始<head>直後になります。

PS ファイルの先頭でBOMを強制する場合も問題は解決しますが、たとえば、PHPストームは(現時点では)保存できません。 ただし、ブラウザアプリケーションにはBOMは必要ありません。ドキュメント「 BOMの使用はUTF-8には必要も推奨もされていません 」に基づいて冗長です

Source: https://habr.com/ru/post/J103925/


All Articles