关于mysql读取、写入出现乱码的解决方法(个人总结)
我使用的是apserv安装包,安装时语言我选择的是gb2312,后来在建立新的数据库时,‘整理’选择的是utf8,接下来在表中参数类型基本选择的都是utf8,接下来我就直接调用啦,嘎嘎,我写的是一个简单的留言本。最简单的读取数据库写入数据库的程序,嘎嘎!奇怪的是在数据库里面直接操作中文显示都很正常。可是一到网页上读取留言信息时,中文全部是问号?,然后我又试着写出写留言代码试试看,orz,读进去的都是那个不知道什么符号。。。
于是乎我就去网上翻天覆地的找了好久,终于KO了这个问题,嘎嘎。
首先声明本人初学,只能保证我这种方法是能够解决读取写入乱码的。但是不代表只能这样做。。。
我的解决方法如下:
1.my.ini文件中的
[mysql]
default-character-set = utf8 //此处设置为utf8,注意不是utf-8
2.在连接数据库选择表之后,操作数据前,添加一句 mysql_query("SET NAMES 'GB2312'");
嘎嘎,1不确定是不是必要的,但是我确定2是必要的,其他的就是在表中数据尽量采用utf8.
这样问题就解决啦!
好,展示下个人写的第一个超超超超简单的留言本程序,刚学php,没做格式控制,大家别笑话。这是纯手写哦!
/*首页读取留言信息的代码index.php*/
<?php include("include/config.php");?>
<?PHP include("include/head.php");?>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>留言本</title>
</head>
<body>
<p>
<?php include("include/conn.php");
$q = "SELECT * from lyb";
mysql_query("SET NAMES 'GB2312'"); // 防止出现乱码
?>
<?
$rs = mysql_query($q, $dbh);
/*输出数据并分行*/
while($row = mysql_fetch_array($rs)) echo "序号$row[id] 姓名:$row[name] qq:$row[qq] 内容:$row[content]<br/>";
?>
<?php include("include/foot.php")?>
</p>
<p><a href="input2.php">写留言</a></p>
/*input2.php至于为什么取名为2,因为设置了两种写入页面,嘎嘎*/
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>留言</title>
</head>
<body>
<form method="post" action
相关文档:
今天装了一台Linux系统,以前都是RedHat,后来听说有Fedora了,一直没用过。正好项目里环境要用就想弄一个来玩玩,结果现在人家最新的是CentOS,就一张CD,其他的根据需要自己上网Down,(我不喜欢这样子就自己下载DVD版)。安装完之后没有图形界面,而且没有提示输入root密码,还得到单用户模式下修改。后来下载了一个图形 ......
今天,要用explain查看mysql的执行规划,但是和PostgreSQL不同的是,直接在mysql里面执行的结果可读性不是很好,上网搜了一圈,发现了一个工具maatkit,可以讲explain的结果转化为树状结构查看,呵呵,方便了很多
安装办法:
1. sudo yum install mysql
2. sudo yum install mysql-server
3. wget http://maatkit.googl ......
配置环境:UUbuntu 8.04
1.安装vsftpd
sudo apt-get install vsftpd
2.创建guest用户
vsftpd安装的时候会自动安转一个ftp用户,在passwd中删除
sudo useradd virtual
设置virtual的密码为webftp
sudo passwd virtual
编辑virtual用户的主目录并设置shell
sudo vim /etc/passwd
我设置的是virtual:x:1001: ......
在WindowsXP中打开DOS,通过输入命令“mysql -u root -p”切换到mysql下,切换失败,如下所示:
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.
C:\>mysql -u root -p
'mysql' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
......
前提:MySQL中存在一个用户自己建立的数据库,假设为mydb,mydb中有一张用户自己建立的表格,假设名称为mytable
我的前提:MySQL中存在两个数据库,yldb和yldb2,其中yldb数据库中有一张表,名为pet
一.MYSQL的命令行模式的设置:
桌面->我的电脑->属性->环境变量->新建->
PATH=“;path\mysql\bin ......