
正文
php连接数据utf PHP连接数据库数据填写不完整
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
PHP连接MSSQL怎么转UTF8
这里涉及到比较多情况:
php文件编码格式用utf-8
html头标注utf-8:meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
mssql?还是你用的mysql?不管什么sql了,在query之前增加一句"set names 'utf8'"注意这里不需要加“-”。
把取出来的数据打印一下,应该就是你要的utf-8编码格式的了。这些是解决乱码的方法。
相关问答
Q1: php连mysql用 utf-8编码乱码怎么办
如果设置了set names utf8还是乱码的话,你需要看看数据库的编码格式了,乱码产生的原因,是因为存放时的编码和取出数据展示的编码不一致,导致的不能正常显示,你先查看数据库的编码合适,存放数据库开始检查
Q2: php+mysql数据库中文连接乱码?set names utf8 也不行!
MySQL会出现中文乱码php连接数据utf的原因不外乎下列几点php连接数据utf:
1.server本身设定问题php连接数据utf,安装时使用的字符集是latin1
2.table的语系设定问题(包含character与collation)
3.客户端程式(例如php)的连线语系设定问题
正如您设定的一样,建议使用UTF8,可兼容一切字符。以下为解决办法:
一、避免创建数据库及表出现中文乱码和查看编码方法
1、创建数据库的时候:CREATE DATABASE `test`
CHARACTER SET 'utf8'
COLLATE 'utf8_general_ci';
2、建表的时候 CREATE TABLE `database_user` (
`ID` varchar(40) NOT NULL default '',
`UserID` varchar(40) NOT NULL default '',
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
即建库和建表时都使用相同的编码格式。
但是如果你已经建了库和表可以通过以下方式进行查询。
执行SET NAMES utf8的效果等同于同时设定如下:
SET character_set_client='utf8';
SET character_set_connection='utf8';
SET character_set_results='utf8';
二、避免导入数据有中文乱码的问题
1:将数据编码格式保存为utf-8
设置默认编码为utf8:set names utf8;
设置数据库db_name默认为utf8:
ALTER DATABASE `db_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
设置表tb_name默认编码为utf8:
ALTER TABLE `tb_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
导入:LOAD DATA LOCAL INFILE 'C:\\utf8.txt' INTO TABLE yjdb;
2:将数据编码格式保存为ansi(即GBK或GB2312)
设置默认编码为gbk:set names gbk;
设置数据库db_name默认编码为gbk:
ALTER DATABASE `db_name` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;
设置表tb_name默认编码为gbk:
ALTER TABLE `tb_name` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;
导入:LOAD DATA LOCAL INFILE 'C:\\gbk.txt' INTO TABLE yjdb;
注:1.UTF8不要导入gbk,gbk不要导入UTF8;
2.dos下不支持UTF8的显示;
三、解决网页中乱码的问题
将网站编码设为 utf-8,这样可以兼容世界上所有字符。如果网站已经运作了好久,已有很多旧数据,不能再更改简体中文的设定,那么建议将页面的编码设为 GBK, GBK与GB2312的区别就在于:GBK能比GB2312显示更多的字符,要显示简体码的繁体字,就只能用GBK。
1.编辑/etc/my.cnf ,在[mysql]段加入default_character_set=utf8;
2.在编写Connection URL时,加上?useUnicode=truecharacterEncoding=utf-8参;
3.在网页代码中加上一个"set names utf8"或者"set names gbk"的指令,告诉MySQL连线内容都要使用utf8或者gbk。
希望对你有所帮助。
Q3: php访问mysql数据库时,读出的数据是问号!如何解决,设置的编码方式是utf-8
两边入手,
PHP,需要设置页面编码,加一行代码:
header('Content-Type:text/html;charset=utf-8');
这样就把输出编码改为了UTF-8
但是,MySQL也要设置,那就是连接到数据库之后再加一行
mysql_query("SET
NAMES
`UTF-8`");
即可
当然,你得保证你的数据库的字符集是UTF-8
如果仍然出错,那就说明数据库的字符集配置有问题
Q4: php 连接ORALCE数据库 utf8 转 iso-8859-1的问题
ISO-8859-1是单字节字符集,又称Latin-1,向下兼容ASCII,所以你可以尝试直接使用GBK编码写入数据库。
其实数据库本身只是存储而已,你所说的乱码只是你的数据库查看工具所反映出来的现象。如果你页面本身用的是UTF-8编码,存入数据库和读出应该都是正常的,而不必纠结数据库查询工具所看到的现象。或者只能通过设置数据库编码、数据库查看工具编码、页面源代码编码三者一致才能最好地解决这个问题。
Q5: PHP使用utf8插入中文数据到MySQL中文显示会乱码怎么办?
数据库使用utf8编码php连接数据utf,需要在操作php连接数据utf的过程中统一全部编码。
1.数据库默认编码
CREATE DATABASE `test` DEFAULT CHARACTER SET 'utf8';
2.表默认编码
CREATE TABLE `tablea`(
`id` INT NOT NULL AUTO_INCREMENT,
`title` VARCHAR(100) NULL,
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
3.字段默认编码
默认情况下php连接数据utf,字段的编码同表的编码php连接数据utf,但是如果修改了表的编码php连接数据utf,字段编码不会同步修改,需要手动修改
这里修改编码测试我将utf8 改为 gb2312 ,仅用于观察修改后的情况(实际使用中可能是将gbk修改为utf8)
ALTER TABLE `test`.`tablea` CHARACTER SET = gb2312 ;
-- 修改表编码后,查看建表语句
show create table `tablea`;
-- 可以看到输出的建表语句中字段单独设置了编码
CREATE TABLE `tablea`(
`id` INT NOT NULL AUTO_INCREMENT,
`title` VARCHAR(100) CHARACTER SET utf8 NULL,
)ENGINE=InnoDB DEFAULT CHARSET=gb2312;
-- 需要手动修改字段编码
ALTER TABLE `tablea`
CHANGE COLUMN `title` `title` VARCHAR(100) CHARACTER SET 'gb2312' NULL DEFAULT NULL ;
4.当前数据库连接的编码
连接数时设置编码
// PDO 连接
$db = new PDO('mysql:host=myhost;dbname=test', 'login', 'password',
array(PDO::MYSQL_ATTR_INIT_COMMAND = 'SET NAMES \'UTF8\'')
);
// mysqli连接
$link = mysqli_connect("127.0.0.1", "my_user", "my_password", "test");
mysqli_query($link,"SET NAMES 'utf8';");
通过以上几步操作,基本可以保证数据库使用过程中不会出现乱码
php连接数据utf的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于PHP连接数据库数据填写不完整、php连接数据utf的信息别忘了在本站进行查找喔。





