很多站长朋友们都不太清楚php读取数据库中文为,今天小编就来给大家整理php读取数据库中文为,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 PHP mysql 如何将从数据中读入的中文乱码转换成中文字符? 2、 php获取数据库中文数据显示的是?,这怎么解决,附图 3、 用PHP从数据库中取出的中文是乱码,怎么处理能使中文正常显示? 4、 如何解决php读取mysql中文乱码的情况 5、 php读取mysql数据库的内容后显示为乱码,中文变成问号怎么办? 6、 PHP读取数据库中文全是问号 PHP mysql 如何将从数据中读入的中文乱码转换成中文字符?要解决乱码首先需要知道出现乱码的原因:
一、PHP+MySQL出现中文乱码的原因。
1. MYSQL数据库的编码是utf8,与PHP网页的编码格式不一致,就会造成MYSQL中的中文乱码。
2. 使用MYSQL中创建表、或者选择字段时设置的类型不是utf8,而网页编码不是utf8,也可能造成MYSQL中文乱码.
3. PHP页面的字符集与数据库的编码不一致。
4. PHP连接MYSQL数据库,操作是设定的语句指定的编码和页面编码,PHP页面编码不一致。
5. 用户提交的HTML页面编码,和显示数据的页面编码不一致 ,就肯定会造成PHP页面乱码.
二、解决中文乱码:
1. 网页编码设置。一般在HTML代码中的文件头<html>中加入属性:
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″>
保证,网页是"utf-8"编码。
2. PHP代码设置。在php代码的开始部分加入以下代码:
header(”Content-type: text/html;charset=utf-8″);
且要求保存的文件编码方式是utf-8,这样就保证了该文件也是utf-8编码。
3. 数据库中表的字段中存储中文的部分,要设置为utf8_general_ci类型。
4.PHP在连接数据库操作时,要设置操作的字段类型为utf8,设置方法如下:
mysql_connect(’localhost’,'user’,'password’);mysql_select_db(’db’);mysql_query(”set names utf8;”); //**设置字符集***
php获取数据库中文数据显示的是?,这怎么解决,附图首先你的php网页要是UTF-8
<?php header("Content-Type:text/html;charset=UTF-8"); ?>
数据库配置公共文件如下:
$host="localhost";
$db_user="root";
$db_pass="root";
$db_name="DB";
$timezone="Asia/Shanghai";
$link=mysql_connect($host,$db_user,$db_pass);
mysql_select_db($db_name,$link);
mysql_query("SET names UTF8");
header("Content-Type: text/html; charset=utf-8");
date_default_timezone_set($timezone); //北京时间
用PHP从数据库中取出的中文是乱码,怎么处理能使中文正常显示?数据库采用UTF8编码,而页面申明编码是GB2312,这是最常见的产生乱码的原因。这时候在PHP脚本里面直接SELECT数据出来的就是乱码,需要在查询前先使用:mysql_query("SET NAMES GBK");或mysql_query("SET NAMES GB2312");来设定MYSQL连接编码,保证页面申明编码与这里设定的连接编码一致(GBK是GB2312的扩展)。如果页面是UTF-8编码的话,可以用:mysql_query("SET NAMES UTF8"); 注意是UTF8而不是一般用的UTF-8。假如页面申明的编码与数据库内部编码一致可以不设定连接编码。
事实上MYSQL配置文件my.ini中定义了2个默认编码,分别是[client]里的default-character-set和[mysqld]里的default-character-set来分别设定默认时候客户端连接和数据库内部所采用的编码。上面指定的编码其实是MYSQL客户端连接服务器时候的命令行参数character_set_client,来告诉MYSQL服务器接受到的客户端数据是什么编码的,而不是采用默认编码。
转自:
如何解决php读取mysql中文乱码的情况把你数据库中查询出来的中文都进行下编码转化:
iconv('latin1','你想要的编码格式','需要转化的中文(注意只能为字符串,不能直接使用数组)');
php读取mysql数据库的内容后显示为乱码,中文变成问号怎么办?换成UTF8肯定不行,因为是问号,肯定不是三字节到两字节
的问题,而是和拉丁1有关,因为问号是不可能转换的意思
,失败了,
解决:你需要
按数据流入的程序再配置好,再原路返回,,再换重新建库,导入
,,OK
顺便说一下,出的分太少了
PHP读取数据库中文全是问号if ($db->server_info()>'5.0.1')
{
$db->query("set names gbk2312");或者是GBK
}
把IF去掉
补充:
输出之后,你试试IE切换编码,看哪种编码能显示中文,你再把数据库编码以及页面编码调整统一。
关于php读取数据库中文为的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于php读取数据库中文为 php读取数据表内容的详细内容...