2011-08-07 103 views
1

我试图存储在MySQL以下行:字符集问题与MySQL

$data = "After 30μs, what fraction of the charge will remain?" 

如果我显示$数据在HTML页面我得到确切的文本,但如果我这些信息存储在数据库中,然后我得到这个输出数据,我得到以下几点:

After 30Î?s, what fraction of the charge will remain? 

我已经设置的charset = UTF-8但即使如此,我不能与所有的符号来访问正确的数据。有什么我失踪?

回答

1

您需要设置数据库连接编码:

mysql_set_charset('utf8'); 

或者类似的方法,这取决于你的数据库库。

+0

我刚试过,但相同的结果:( – fawad

+0

@ fawad您不仅需要将其用于显示目的,而且还需要用于插入过程,因此这适用于新插入的数据。 – Karolis

+0

我已经将此函数调用到插入函数的上方,但仍然没有结果:(其他任何建议请参考? – fawad

0

什么是您的MySQL服务器的默认字符集和整理?尝试在脚本中的任何其他查询之前执行以下查询。

SET NAMES utf8 COLLATE utf8_general_ci; 

顺便说一句,我们在谈论MySQL服务器吗?

+0

其表utf8_general_ci。我如何检查默认字符集?它是我的MYSQL,phpmyadmin。 – fawad

+0

你可以在PMA的第一页上阅读'MySQL charset'。 – brezanac

+0

它与utf8相同 – fawad

0

确保您的列的字符集是UTF-8,然后用这个方法用于插入:

INSERT INTO my_table VALUES( 
    _utf8'After 30μs, what fraction of the charge will remain?', ... 
); 

这对于阅读:

SELECT BINARY my_column FROM my_table; 
+0

列设置为utf8_general_ci – fawad

+0

@fawad不错,现在使用我提到的方法应该可以解决你的问题。 – nobody

+0

存储数据后,如果我只是通过phpmyadmin访问数据,我会得到所有未知的符号。这意味着必须用数据库设置一些东西。我对吗? – fawad