中文问题是这样的:
数据库服务器默认的字符集为gb2312。建立数据表时,如果没有设置字符集,那么应该是默认的字符集。
网页采用的是gb2312,通过form表单获得用户输入并把相应的输入插入数据库。然后再从数据库中取出相应的数据,显示为乱码(以上存取过程中都没有做任何的编码转换)。
解决方法如下:
在执行mysql_query函数来完成查询操作前,先执行mysql_query("SET NAMES 'gb2312'"),这个语句相当于执行了SET character_set_client=gb2312; SET character_set_results=gb2312; SET character_set_connection=gb2312;
不论是插入、更新、删除还是查询操作,只要是操纵数据库,都要先执行SET NAMES "gb2312",这样才能保证插入和显示的正确性。如果插入操作前没有执行这条语句,仅在查询时执行该语句,则仍然无法保证显示的正确性。
当然,最终我采用的是utf-8编码。
数据库服务器默认的字符集为gb2312。建立数据表时,如果没有设置字符集,那么应该是默认的字符集。
网页采用的是gb2312,通过form表单获得用户输入并把相应的输入插入数据库。然后再从数据库中取出相应的数据,显示为乱码(以上存取过程中都没有做任何的编码转换)。
解决方法如下:
在执行mysql_query函数来完成查询操作前,先执行mysql_query("SET NAMES 'gb2312'"),这个语句相当于执行了SET character_set_client=gb2312; SET character_set_results=gb2312; SET character_set_connection=gb2312;
不论是插入、更新、删除还是查询操作,只要是操纵数据库,都要先执行SET NAMES "gb2312",这样才能保证插入和显示的正确性。如果插入操作前没有执行这条语句,仅在查询时执行该语句,则仍然无法保证显示的正确性。
当然,最终我采用的是utf-8编码。