更改你数据库 库的字符集,包括库里表的字符集,表上字段的字符集。
注意:这不能将你latin1的表转换到多字节字符集。(理论上是可以,但是转换后它仍然是一个latin1的特性,只是强制换了个名字,除了给你带来一些不必要的困惑外,不具有任何实际意义)。
本人运用环境 gbk 换到 utf8.
PHP代码
- <?
- mysql_pconnect('localhost','xxx','xxx');
- mysql_select_db($dbname);
- mysql_query("ALTER DATABASE `$dbname` DEFAULT CHARACTER SET utf8");
- $query1=mysql_query("SHOW TABLE STATUS");
- $row=array();
- while ($row=mysql_fetch_assoc($query1)){
- $tname = $row['Name'];
- mysql_query("ALTER TABLE `".$tname."` DEFAULT CHARACTER SET utf8");
- $query2=mysql_query("SHOW FULL FIELDS FROM `".$tname."`");
- $row=array();
- while($row = mysql_fetch_assoc($query2)){
- if(!is_null($row['Collation'])){
- $x ='CHARACTER SET utf8';
-
-
- if(!is_null($row['Default'])) $d = "default '".$row['Default']."'";
- elseif($row['Null'] == 'YES' AND is_null($row['Default'])) $d = "default NULL";
- else $d='';
-
- if($row['Null'] == 'NO') $n ='NOT NULL';
- else $n='';
-
- $xx ="ALTER TABLE `".$tname."` MODIFY `".$row['Field']."` ".$row['Type']." $x $n $d ".$row['Extra']."";
- mysql_query($xx);
-
- }
- }
- }
- ?>
抱歉,由于没有上传相关代码高亮的样式表,所以代码显示有点垃圾,复制下来用吧。
还有最好是用命令行跑吧,如果你数据量大,web执行是必定有障碍的。
(點擊查看原文/來源鏈接)
評論