mysql5写入和读出乱码解决

时间:2021-05-26

我写的例子
复制代码 代码如下:<?
require("adodb/adodb.inc.php");
$conn=newadoconnection('mysql');
$conn->connect("localhost","root","2027205","bh38")ordie("连接不成功");
$conn->execute("setnamesgb2312");
$conn->execute("INSERTINTO`vv`(`cc`)VALUES('换了个编码不知道行不行');")ordie("错误");
$rc=$conn->execute("select*fromvv");
while(!$rc->EOF)
{
echo($rc->fields["cc"]);
$rc->movenext();
}
?>
当然我们也可以通过如下指令修改数据库的字符集
alterdatabaseda_namedefaultcharacterset'charset'.
客户端以gbk格式发送,可以采用下述配置:
SETcharacter_set_client='gbk'
SETcharacter_set_connection='gbk'
SETcharacter_set_results='gbk'
这个配置就等价于SETNAMES'gbk'。
现在对刚才创建的数据库操作
mysql>usetest;
Databasechanged
mysql>insertintomysqlcodevalues(null,'php爱好者');
ERROR1406(22001):Datatoolongforcolumn'content'atrow1
没有指定字符集为gbk,插入时出错
mysql>setnames'gbk';
QueryOK,0rowsaffected(0.02sec)
指定字符集为gbk
mysql>insertintomysqlcodevalues(null,'php爱好者');
QueryOK,1rowaffected(0.00sec)
插入成功
mysql>select*frommysqlcode;
+----+-----------+
|id|content|
+----+-----------+
|1|php爱好着|
+----+-----------+
1rowinset(0.00sec)
在没有指定字符集gbk时读取也会出现乱码,如下
mysql>select*frommysqlcode;
+----+---------+
|id|content|
+----+---------+
|1|php???|
+----+---------+
1rowinset(0.00sec)

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章