TXT文件内容:
意见内容        意见内容
      意见内容      意见内容
意见内容        意见内容      意见内容                                                                                                                  意见内容                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
test将这段文本内容copy到TEXTAREA中,然后提交,在PHP后台用str_replace(" "," ",$content)后,发现有乱码出现“&n! bsp;”这些乱码,怎么解决,请教各位!!!

解决方案 »

  1.   

    会不会是你这个处理页面的编码不一致呢?
    在头部加上编码试试,
    header("Content-type:text/html;charset=utf-8");也可用iconv转换编码
    $string = iconv("gb2312","utf-8//IGNORE",$string)
      

  2.   

    好像不是上面的问题,我发现echo $content = str_replace(" "," ",$content)是没有乱码的?但我发送邮件后,收到的信息有“&n! bsp;”这些乱码。
    如下:
    “意见内容        意见内容
          意见内容      意见内容
    意见内容        意见内容      意见内容                                                                                                         &! nbsp;        意见内容                                                                                                                                                     ! ;          &! nbsp;&nb sp;                                                                                                                                                                    &n! bsp;                                                                                                                                  
    test ”
      

  3.   

    发送邮件代码:mail($mail_to, $mail_subject, $content, $mail_headers);
      

  4.   

      $mail_headers  = 'MIME-Version: 1.0' . "\r\n";
      $mail_headers .= 'Content-type: text/html; charset=UTF-8' . "\r\n";
      

  5.   

    真扯,从str_replace()变成mail()mail()乱码大多是中文编码的原因,base64_encode()一下就行了,并在标题上加上编码区分;如:$to       = '[email protected]';
    $subject  = "=?UTF-8?B?".base64_encode('邮件标题')."?=";
    $headers  = 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
      

  6.   

    这个是指标题乱码情况,继续测试,发现如下问题:
    $content中的字符串中有多个连续(大概150个) 字符,mail就会出现上述情况,100个左右就正常
      

  7.   

    PHP中文字符串截取乱码解决方案2009-08-25 16:041) 确定mbstring库是可用的。
    即在php.ini中extension=php_mbstring.dll前面没有分号2) 数据库使用UTF-8字符集,PHP文件存成UTF-83)使用mb_xxx系列函数
    <?php        
    mb_internal_encoding("UTF-8");  
    echo mb_strlen("定义答案补充");echo "<hr/>";
    echo mb_strpos("定义答案补充","答",0);
    echo "<hr/>";echo mb_substr("定义答案补充",0,mb_strpos("定义答案补充","答")); 
    echo "<hr/>";echo mb_strlen("我是中国人");echo "<hr/>";
    echo mb_strpos("我是中国人","国",0);
    echo "<hr/>";echo mb_substr("我是中国人",0,mb_strpos("我是中国人","国")+1); ?> 摘自我的博客 http://hi.baidu.com/hahadian68/blog