2010-12-22 86 views
1

我正在使用ckeditor 3.4将数据(文本)插入数据库,然后将其显示在页面上。db中的数据编码错误(使用CKeditor)和希腊语

问题:当我在ckeditor中写(希腊语)时,一切都很好。当我再次按下ckeditor的HTML按钮时,一切都很好(例如,我看到实际输入的文本不是html实体)。然而,当我保存数据(因此它们存储到数据库)在数据库存储的数据是这样的

"<p style="text-align: center;"> 
    ... σÏντομα πεÏισσότεÏες πληÏοφοÏίες...</p> 
<p> 
    &nbsp;</p>" 

注:当我回忆的数据正确显示在网页上。迄今已采取

操作:

1-连接文件的分贝有以下几点:$conn->query("SET NAMES 'utf8'");

2-在我已经添加下列行

config.entities = false; 
config.entities_greek = false; 
config.entities_latin = false; 
config.entities_processNumerical = false; 
    // Define changes to default configuration here. For example: 
    config.language = 'el'; 
    // config.uiColor = '#AADC6E'; 
}; 
所述的CKEditor的config.js

3-我的网页被设定为:content="text/html;charset=utf-8"

4-分贝colation:utf8_unicode_ci/type MyIsam

我一直在寻找,但没有运气。 如果您使用PHP或不自动执行此操作任何其他语言我想感谢所有帮助

+0

您使用什么程序/脚本来查看数据库内容?也许它根本不支持UTF-8? – 2010-12-22 15:15:34

回答

0

,你需要调用任何语句之前调用

SET NAMES 'UTF8' 
连接上

,以在数据库中使用UTF-8。

此外,请确保您以UTF-8格式提供所有页面,以便发布的数据以UTF-8格式显示。

还有一些配置参数可以控制服务器如何发送和处理数据,但是我从来没有设法让它在没有这个语句的情况下工作。

含硒较多的位置:http://dev.mysql.com/doc/refman/5.0/en/charset-connection.html

编辑:啊,对不起,没看到你确实这样做。如果它在输出时正确显示,并且页面上的字符集设置为UTF-8,那么我假设您只在数据库中使用不支持UTF-8的工具查看它,或者isn'为它配置?那么现在究竟是什么问题呢?

+0

是的,“σÏνϔο“就像查看设置为latin-1编码的查看器的utf-8数据。所以也许它只是你的数据库查看器。 – Eelvex 2010-12-22 18:18:17

2

谢谢大家的回答。 解决方案简单得多。 正确的文字是SET NAMES UTF8而不是SET NAMES 'utf8'