将utf8_encode应用于ob_end_flush()

时间:2010-02-10 18:41:16

标签: php character-encoding

我有一个生成文本输出的脚本。该脚本从编码为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 个答案:

答案 0 :(得分:1)

ob_end_flush将数据发送到客户端并返回一个布尔值。你应该使用ob_get_flush。

http://ar2.php.net/ob_get_flush

答案 1 :(得分:1)

要进行转换,您还可以在打开与DB的连接后执行此查询SET NAMES utf8。它将指示MySQL进行latin-1到UTF-8的转换,你将不再需要utf8_encode