使用"SET NAMES UTF8"后,出现乱码

pinaby 2012-05-29 12:25:35
问题是这样的,以前程序中没有使用mysql_query("SET NAMES UTF8"),关于这行代码的作用我不是很清楚,就在代码中加了这一句,但是发现加了这句话后以前插入的数据显示乱码,但是加入这句话以后插入的数据显示正常,因为我在加入这段代码后插入了很多内容,所以不想删掉,有没有解决办法呢?能够同时让加入mysql_query("SET NAMES UTF8")前后的数据都能显示正常?
...全文
260 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
pinaby 2012-05-30
  • 打赏
  • 举报
回复
谢谢大家了,我的做法是 在需要转换的页面加mysql("set names utf8");如果以前没有使用mysql("set names utf8")插入数据,那么就不必加这句话,只能暂时这样了
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
我的程序中对数据库的操作比较多,如果一条条的转码 会很麻烦!
[/Quote]
你将转换语句写到循环里不就行了吗:

$arr = array();
while($rows = mysql_fetch_array()){
array_push($arr,$rows);
}
function changeEncode($arr){
foreach($arr as $ar){
foreach($ar as $a){
$a = iconv("GBK", "UTF-8", $a);
}
}
}
//哪转哪调用
changeEncode($a);
码无边 2012-05-30
  • 打赏
  • 举报
回复
数据库编码是?
  • 打赏
  • 举报
回复

将数据库中取出来的数据进行转码:
$newdata = iconv("GBK", "UTF-8", $data);
一起混吧 2012-05-29
  • 打赏
  • 举报
回复
把以前的数据转码一下。
qq120848369 2012-05-29
  • 打赏
  • 举报
回复
编码问题是个综合问题, 你给的信息太少了.
一起混吧 2012-05-29
  • 打赏
  • 举报
回复
那有什么办法。现在以utf-8取数据。那么以前的数据就会乱码。遍历转码就是了。
pinaby 2012-05-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

PHP code

将数据库中取出来的数据进行转码:
$newdata = iconv("GBK", "UTF-8", $data);
[/Quote]
我的程序中对数据库的操作比较多,如果一条条的转码 会很麻烦!
pinaby 2012-05-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

把以前的数据转码一下。
[/Quote]
具体怎么转,不会是一个条条的转吧,程序中有很多次对数据库数据的操作

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧