我想从MySQL数据库中检索一个特殊的希腊字符µ
,但在HTML中显示为 ,显示此�
。如何从数据库中检索特殊的字符?
我的HTML字符集:content="text/html; charset=windows-1252"
此外,它检索它也需要能够使用的字符比较早在数据库中的字符之后。
我试过把HTML代码放在数据库中,比如μ
;那么它不能与数据库进行比较,因为HTML会将它变成µ
。
我该如何适当地做到这一点?
我想从MySQL数据库中检索一个特殊的希腊字符µ
,但在HTML中显示为 ,显示此�
。如何从数据库中检索特殊的字符?
我的HTML字符集:content="text/html; charset=windows-1252"
此外,它检索它也需要能够使用的字符比较早在数据库中的字符之后。
我试过把HTML代码放在数据库中,比如μ
;那么它不能与数据库进行比较,因为HTML会将它变成µ
。
我该如何适当地做到这一点?
试试这在包含特殊字符(based off of this post)你的表:
ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8;
首先,我会建议使用UTF-8作为你的字符集。
开始通过切换默认数据库:
ALTER DATABASE db_name CHARACTER SET utf8;
接下来,切换您的表到UTF8应用此SQL:
ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8;
,你将不得不为每个表做。
最后,很遗憾,您必须知道转换在旧字符集(varchar,text等)下创建的所有字符数据列。你必须先铸造的方式,使已存储的字符不是缺胳膊少腿做到这一点的BLOB:
alter table tbl_name change col_name col_name LONGBLOB;
alter table tbl_name change col_name col_name LONGTEXT CHARACTER SET utf8;
的WordPress发布关于如何做到这一步列类型的列式导:converting database charset columns。
然后,终于在你的XHTML更新字符集声明(或没有结局/如果是HTML):
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
这个过程是艰苦的,但会转换数据库。在utf8中启动数据库要容易得多。
这是所有假设的MySQL 5,为此您可以看到Mysql 5 ALTER TABLE参考。
请参阅Shelhamer的回答,但您还需要将db连接设置为utf8。连接到数据库后,您可以使用mysql_set_charset('utf8');
。或者运行以下查询your're连接后:
SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8';
不过,我还是会建议你使用ヶ辆显示网站上的内容时,要确保的是()的所有有效的HTML。如果混淆编码,Firefox往往会陷入困境。
在将php保存到数据库之前使用utf8_encode()
。 它将解决问题
你是否已经正确定义了mysql中的charset? –
我相信MySQL的默认字符集是latin1 – BumbleB2na
我很确定它是默认的字符集。我必须设置哪一个? – TheRealDK