PHP MySQL中文内容显示乱码
2007-12-11 11:16
281 查看
MySQL版本:mysql-4.1.21-win32.exe
Apache版本:apache_1.3.37-win32-x86-no_src.msi
操作系统:WinXP + SP2
PHP版本:php-4.4.3-Win32.zip
我的网站目前要支持中、英文,以后还需支持其它语言。
所以我在创建数据库时都用了utf8
我使用了PEAR + Smarty
PHP代码如下:
$user = DB_DataObject::factory('users');
$user->query("select * from users where user_id=1");
$user->fetch();
$smarty->Assign('user',$user);
$smarty->display('index.tpl');
模板文件:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>6666</title>
</head>
<body>
{$user->name}
</body>
</html>
但显示出来的是问号,英文的话就正常。
1.用PHPMyAdmin显示也能正常显示中文。
2.用命令提示符显示出来是乱码。
请问该如何解决此问题?谢谢。网上找了资料查看,但还是不行。
你的数据库里面存的是什么编码
数据库存为utf-8,还有在<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />的同时,把文件也要保存为utf-8格式。。。
$user->query("set names utf8");
$user->query("select * from users where user_id=1");
1、数据库也是UTF8编码
2、文件存为UTF-8,好像改了一个页面,但是还不行。
3、我不是每个查找都用Query了,有些用GET Find(),请问在连接时就设置一下。
那你应该在数据库连接成功之后设置set names utf8
$user = DB_DataObject::factory('users');
修改DB_DataObject类吧
一般mysql4很容易出现乱码问题,解决此类问题
1、进入mysql,运行
mysql> show variables like '%character%';
+--------------------------+---------------------------------------------------------+
| Variable_name | Value |
+--------------------------+---------------------------------------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | utf8 |
| character_set_results | latin1 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | C:/Program Files/MySQL/MySQL Server 4.1/share/charsets/ |
+--------------------------+---------------------------------------------------------+
7 rows in set (0.00 sec)
如果显示这样的话,那么需要运行。
set character_set_client = utf8;
set character_set_connection = utf8;
set character_set_results = utf8;
2、打开apache的配置文件httpd.conf查看是否有 AddDefaultCharact UTF8,如果没有加上就可以了,别忘了重起apche.
好了吗?
在所有查询前
set names utf8
模板文件也需要用UTF8编码方式保存.
呵呵!是啊!存的时候是什么编码,取出来也是什么编码就OK了
今天早上过来,显示正常了,晕啊。
现在数据库是UTF8 ,网页UTF-8编码,<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
可能在Apache和MySql的配置文件改了什么,还得测试。
今天国外空间访问不上,到国外空间测试后才能确定。
在数据库连接后面加一个
mysql_query("set names 'gb2312'");
yema0616() ( )
和
yueliangdao0608((深圳)PHP和MYSQLQQ:38257291)
办法应该行
http://blog.chinaunix.net/u/19869/showart_121729.html
$user->query("set names utf8");
每个查询前都加上这句
国外的空间上的自己不能修改配置文件吧?
乱码问题,有时候真的很头痛,
Apache版本:apache_1.3.37-win32-x86-no_src.msi
操作系统:WinXP + SP2
PHP版本:php-4.4.3-Win32.zip
我的网站目前要支持中、英文,以后还需支持其它语言。
所以我在创建数据库时都用了utf8
我使用了PEAR + Smarty
PHP代码如下:
$user = DB_DataObject::factory('users');
$user->query("select * from users where user_id=1");
$user->fetch();
$smarty->Assign('user',$user);
$smarty->display('index.tpl');
模板文件:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>6666</title>
</head>
<body>
{$user->name}
</body>
</html>
但显示出来的是问号,英文的话就正常。
1.用PHPMyAdmin显示也能正常显示中文。
2.用命令提示符显示出来是乱码。
请问该如何解决此问题?谢谢。网上找了资料查看,但还是不行。
你的数据库里面存的是什么编码
数据库存为utf-8,还有在<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />的同时,把文件也要保存为utf-8格式。。。
$user->query("set names utf8");
$user->query("select * from users where user_id=1");
1、数据库也是UTF8编码
2、文件存为UTF-8,好像改了一个页面,但是还不行。
3、我不是每个查找都用Query了,有些用GET Find(),请问在连接时就设置一下。
那你应该在数据库连接成功之后设置set names utf8
$user = DB_DataObject::factory('users');
修改DB_DataObject类吧
一般mysql4很容易出现乱码问题,解决此类问题
1、进入mysql,运行
mysql> show variables like '%character%';
+--------------------------+---------------------------------------------------------+
| Variable_name | Value |
+--------------------------+---------------------------------------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | utf8 |
| character_set_results | latin1 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | C:/Program Files/MySQL/MySQL Server 4.1/share/charsets/ |
+--------------------------+---------------------------------------------------------+
7 rows in set (0.00 sec)
如果显示这样的话,那么需要运行。
set character_set_client = utf8;
set character_set_connection = utf8;
set character_set_results = utf8;
2、打开apache的配置文件httpd.conf查看是否有 AddDefaultCharact UTF8,如果没有加上就可以了,别忘了重起apche.
好了吗?
在所有查询前
set names utf8
模板文件也需要用UTF8编码方式保存.
呵呵!是啊!存的时候是什么编码,取出来也是什么编码就OK了
今天早上过来,显示正常了,晕啊。
现在数据库是UTF8 ,网页UTF-8编码,<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
可能在Apache和MySql的配置文件改了什么,还得测试。
今天国外空间访问不上,到国外空间测试后才能确定。
在数据库连接后面加一个
mysql_query("set names 'gb2312'");
yema0616() ( )
和
yueliangdao0608((深圳)PHP和MYSQLQQ:38257291)
办法应该行
http://blog.chinaunix.net/u/19869/showart_121729.html
$user->query("set names utf8");
每个查询前都加上这句
国外的空间上的自己不能修改配置文件吧?
乱码问题,有时候真的很头痛,
相关文章推荐
- PHP读取MySQL显示中文乱码
- 使用PHP向Mysql数据库插入信息,页面中文内容显示正常,但在数据库里却是乱码,这个怎么解决?
- PHP连接MySQL查询结果中文显示乱码解决方法
- php往mysql插入中文显示乱码,php从mysql读取中文显示乱码
- php mysql 中文乱码解决,数据库显示正常,php调用不正常
- php+mysql中文显示乱码解决
- PHP连接MySQL查询结果中文显示乱码解决方法
- PHP连接MySQL查询结果中文显示乱码问题
- 在php页面中显示数据库内容时,中文显示乱码
- php调用mysql中文时显示乱码的解决方法
- mysql的中文内容到php页面乱码问题
- PHP连接MySQL查询结果中文显示乱码解决方法
- PHP连接MySQL查询结果中文显示乱码解决方法
- PHP读MYSQL5 中文显示乱码的解决办法
- 保存数据出现中文乱码-PHP+MySQL
- mysql+php中文显示乱码的解决
- Navicat for mysql 显示中文乱码问题
- MySQL 中文显示乱码
- 问题解决笔记 -- LINUX 服务器 PHP与MYSQL中文乱码问题最终解决方案
- php中文乱码问题以及页面显示部分后台代码问题