2015-06-04 103 views
0

我试图通过TBS(tinybutstrong)和PHP使用示例(MySQL data merge)从varchar(35)/ utf8_swedish_ci字段从MySQL DB加载数据。我的问题是,如果只有ascii字符在字段中,但只要添加一个斯堪的纳维亚特殊字符(如ö或ä),数据就会正常加载,但字段内容完全消失,并且行中的其他字段正确显示。tinybutstrong不显示mysql的特殊字符

我的理解是TBS上的最新版本自动使用UTF-8编码(我对PHP 5有3.9.0),所以我认为它可以开箱即用。为了安全起见,我甚至在模板中添加了编码,如下所示:

'$ TBS-> LoadTemplate('mysql.html','UTF-8');'但无济于事。

请问有人请指教是什么原因造成的。

回答

0

对于良好的UTF-8处理,链中的所有元素都必须是UTF-8。

你必须确保你的模板是UTF-8:检查输入的文本和HTML元素<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

你必须确保你所有的PHP脚本是UTF-8,而不是ANSI。

您还必须确保将MySQL连接设置为接收UTF-8查询并返回UTF-8项目数据。这可以通过查询SQL来完成:SET NAMES 'UTF8'

+0

感谢您的亲切回答。以下是我所做的: 在MySQL中,我运行了3个命令 - ALTER DATABASE stadinru_paivystaja CHARACTER SET utf8 COLLATE utf8_swedish_ci; - ALTER TABLE tilaus_table CONVERT到CHARACTER SET utf8 COLLATE utf8_swedish_ci; - ALTER TABLE tilaus_table MODIFY tilaus_custname VARCHAR(35)CHARACTER SET utf8 COLLATE utf8_swedish_ci; 在PHP我检查此设置是本: 我的php.ini包含此:DEFAULT_CHARSET = “UTF-8” 我template.html文件包含 这两个文件.php和.html都是在utf-8下编辑的。 – sakumatto

+0

但仍然没有显示出可怕的字符。\ r \ r 然后最后我添加了命令mysql_query(“set names'utf8'”);进入PHP文件,并帮助,现在的斯堪的字符正确显示。非常感谢! – sakumatto