首页 / PHP / 设置字符集后怎么还乱码
设置字符集后怎么还乱码
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了设置字符集后怎么还乱码,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4025字,纯文字阅读大概需要6分钟。
内容图文
![设置字符集后怎么还乱码](/upload/InfoBanner/zyjiaocheng/195/47b15947c44e42e483906c377c7327e3.jpg)
foreach($load_list as $k=>&$v){
$temp=&$v['user_name'];
//判断是否有中文
if (!preg_match('/^([\x81-\xfe][\x40-\xfe]){0,2}$/',$temp)){
$len=mb_strlen($temp,'utf-8');
}else{
$len=strlen($temp);
}
for($k=0;$k<$len;$k++){
if($k>1){
$temp[$k]='*';
}
回复讨论(解决方案)
$temp = '判断是否有中文';//判断是否有中文if(preg_match('/[\x81-\xfe][\x40-\xfe]/',$temp)){ mb_internal_encoding("gbk");}else { mb_internal_encoding("utf-8");}$len = mb_strlen($temp);$t = '';for($k=0; $k<$len; $k++){ if($k>1) { $t .= '*'; }else { $t .= mb_substr($temp, $k, 1); }}echo $t;判断*****
按照这种写法,为什么foreach循环$v['user_name']会少一个数??
foreach($load_list as $k=>&$v){
//print_r($v);
//exit;
$temp=$v['user_name'];
//判断是否有中文
if(preg_match('/[\x81-\xfe][\x40-\xfe]/',$temp)){
mb_internal_encoding("gbk");
}else {
mb_internal_encoding("utf-8");
}
$len = mb_strlen($temp);
$t = '';
for($k=0; $k<$len; $k++){
if($k>2) {
$t .= '*';
}else {
$t .= mb_substr($temp, $k, 1);
}
}
$t=&$v['user_name'];
}
为什么会少一个数了,测试很多遍都不行,实在不行了,才来求助
echo base64_encode($v['user_name']);
贴出结果!
你不给出问题现场,如何知道是什么原因?
$load_list是一个二维数组,其中的$v['user_name']有以下数据
xiaodg,x42466,etea,na0617,kimo,留影,vian22,qingyu,jiangliman,xiaobu,xiaobu,hfa818,实现的结果将两个字符后面的用*代替,下面是实现*代码,
foreach($load_list as $k=>&$v){
//print_r($v);
//exit;
$temp=$v['user_name'];
//判断是否有中文
if(preg_match('/[\x81-\xfe][\x40-\xfe]/',$temp)){
mb_internal_encoding("gbk");
}else {
mb_internal_encoding("utf-8");
}
$len = mb_strlen($temp);
$t = '';
for($k=0; $k<$len; $k++){
if($k>2) {
$t .= '*';
}else {
$t .= mb_substr($temp, $k, 1);
}
}
$t=&$v['user_name'];
}
这是assign赋值:
$GLOBALS['tmpl']->assign("load_list",$load_list);
然后在页面用samrty显示:
{foreach from="$load_list" item="load"}
{$load.user_name}
但是显示的结果是xiaodg没有了,从第二个x42466开始显示
这是结果图:
第一个数没有了
你自己写错了,不能怪算法!
$t=&$v['user_name'];
应该是 $v['user_name'] = $t;
$load_list =array( array('user_name' => 'xiaodg'), array('user_name' => 'x42466'), array('user_name' => 'etea'), array('user_name' => 'na0617'), array('user_name' => 'kimo'), array('user_name' => '留影'), array('user_name' => 'vian22'), array('user_name' => 'qingyu'), array('user_name' => 'jiangliman'), array('user_name' => 'xiaobu'), array('user_name' => 'xiaobu'), array('user_name' => 'hfa818'),);foreach($load_list as $k=>&$v){ $temp=$v['user_name']; //判断是否有中文 if(preg_match('/[\x81-\xfe][\x40-\xfe]/',$temp)){ mb_internal_encoding("gbk"); }else { mb_internal_encoding("utf-8"); } $len = mb_strlen($temp); $t = ''; for($k=0; $k<$len; $k++){ if($k>2) { $t .= '*'; }else { $t .= mb_substr($temp, $k, 1); } } $v['user_name'] = $t;}print_r($load_list);
Array( [0] => Array ( [user_name] => xia*** ) [1] => Array ( [user_name] => x42*** ) [2] => Array ( [user_name] => ete* ) [3] => Array ( [user_name] => na0*** ) [4] => Array ( [user_name] => kim* ) [5] => Array ( [user_name] => 留影 ) [6] => Array ( [user_name] => via*** ) [7] => Array ( [user_name] => qin*** ) [8] => Array ( [user_name] => jia******* ) [9] => Array ( [user_name] => xia*** ) [10] => Array ( [user_name] => xia*** ) [11] => Array ( [user_name] => hfa*** ))
谢谢版主,我自己调试测试了很多,自己也写了算法,终究是结果不成功,才来论坛发帖,感谢版主细心指导,谢谢!!
内容总结
以上是互联网集市为您收集整理的设置字符集后怎么还乱码全部内容,希望文章能够帮你解决设置字符集后怎么还乱码所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。