0


0

utf8_encodeをob_end_flush()に適用する

テキスト出力を生成するスクリプトがあります。 このスクリプトは、latin1_general_ciとしてエンコードされたMySQLデータベースからコンテンツを取得します。 iso-8859-1としてマークされたHTMLページにそのスクリプトを含めると、問題なく機能します。

このスクリプトの出力をキャプチャして、utf-8でエンコードされたHTMLページに含めるにはどうすればよいですか?

ob_start()を使用してスクリプトの出力をキャプチャし、ob_end_flush()で出力しようとしました。 その考えは、ob_end_flush()からの出力の文字セットを変換することでした。

次のことを試しましたが、iso-8859-1のコンテンツは変換されていないようです(ブラウザにまだ面白い文字が表示されています)。

utf8_encode(ob_end_flush());

2 Answer


1


ob_end_flushは、データをクライアントに送信し、ブール値を返します。 ob_get_flushを使用する必要があります。


1


変換を行うには、DBとの接続を開いた後にこのクエリ `SET NAMES utf8`を実行することもできます。 MySQLにlatin-1からUTF-8への変換を行うよう指示し、 `utf8_encode`はもう必要ありません。