解决PHP导出CSV文中文乱码问题

 更新时间:2016年11月25日 15:35  点击:2014
csv文件可以使用excel打开并进行一些操作了,同时我们用php导入csv文件是非常的简单了,所以我们通常会使用php来导出csv了,但有时会碰到在使用Excel打开csv时出现乱码问题了,下面我们就来看解决办法。

乱码情况

写了一段导出 CSV 文件的代码,可以正常输出

使用 CSV 和 TXT 程序打开文件是正常的,但是使用 Excel 打开文件就出现了中文乱码的问题(这就奇怪了, 为什么在 Excel 中会乱码呢?)

通过查看编码发现,导出的 CSV 文件是 UTF-8 无BOM编码格式,而我们通常使用 UTF-8 编码格式 都是有 BOM 的。

尝试着添加了 BOM 之后,中文乱码的问题有解决了。

添加 BOM 到 CSV 文件中

示例代码:

$file = fopen($export_file_path, 'w');
fwrite($file, chr(0xEF).chr(0xBB).chr(0xBF)); // 添加 BOM
foreach ($contens as $content) {
        fputcsv($file, $content);
}
fclose($file);

另一种解决办法


function down_file($filepath,$filename)
{
if(!file_exists($filepath))
{
echo "backup error ,download file no exist";
exit();
}
ob_end_clean();
header('Content-Type: application/download');
header("Content-type: text/csv");
header('Content-Disposition: attachment;filename="'.$filename.'"');
header("Content-Encoding: binary");
  header("Content-Length:".filesize($filepath));
header("Pragma: no-cache");
header("Expires: 0");
readfile($filepath);
$e=ob_get_contents();
ob_end_clean();
}


$fname='usersdata.csv';
$handle=fopen($fname,'wb');
$strUsersData =iconv('utf-8','gb2312',$strUsersData);//转换编码
if(fwrite($handle,$strUsersData)==false){}
fclose($handle);
down_file($fname,'555.csv');

token用于常用的表单防止重复提交及站外提交的一个常用的处理方式了,下文我们一起来看一个PHP表单增加token验证,防止站外及重复提交例子。

原理在于生成一个随机字符串放在session里。提交表单后来验证这个字符串。可以做到防止他人自己写form来欺骗提交,重复提交或者双击提交。

Token.php

<?php
 
/*
 * Created on 2013-3-25
 *
 * To change the template for this generated file go to
 * Window - Preferences - PHPeclipse - PHP - Code Templates
 */
function getToken($len = 32, $md5 = true) {
 # Seed random number generator
 # Only needed for PHP versions prior to 4.2
 mt_srand((double) microtime() * 1000000);
 # Array of characters, adjust as desired
 $chars = array (
  'Q',
  '@',
  '8',
  'y',
  '%',
  '^',
  '5',
  'Z',
  '(',
  'G',
  '_',
  'O',
  '`',
  'S',
  '-',
  'N',
  '<',
  'D',
  '{',
  '}',
  '[',
  ']',
  'h',
  ';',
  'W',
  '.',
  '/',
  '|',
  ':',
  '1',
  'E',
  'L',
  '4',
  '&',
  '6',
  '7',
  '#',
  '9',
  'a',
  'A',
  'b',
  'B',
  '~',
  'C',
  'd',
  '>',
  'e',
  '2',
  'f',
  'P',
  'g',
  ')',
  '?',
  'H',
  'i',
  'X',
  'U',
  'J',
  'k',
  'r',
  'l',
  '3',
  't',
  'M',
  'n',
  '=',
  'o',
  '+',
  'p',
  'F',
  'q',
  '!',
  'K',
  'R',
  's',
  'c',
  'm',
  'T',
  'v',
  'j',
  'u',
  'V',
  'w',
  ',',
  'x',
  'I',
  '$',
  'Y',
  'z',
  '*'
 );
 # Array indice friendly number of chars;
 $numChars = count($chars) - 1;
 $token = '';
 # Create random token at the specified length
 for ($i = 0; $i < $len; $i++)
  $token .= $chars[mt_rand(0, $numChars)];
 # Should token be run through md5?
 if ($md5) {
  # Number of 32 char chunks
  $chunks = ceil(strlen($token) / 32);
  $md5token = '';
  # Run each chunk through md5
  for ($i = 1; $i <= $chunks; $i++)
   $md5token .= md5(substr($token, $i * 32 - 32, 32));
  # Trim the token
  $token = substr($md5token, 0, $len);
 }
 return $token;
}
?>

form.php


<?php
include_once("token.php");
$token = getToken();
session_start();
$_SESSION['token'] = $token;
?>
<form action="action.php" method="post"
<input type="hidden" name="token" value="<?=$token?>" />
<!-- 其他input submit之类的 -->
</form>

action.php

<?php
session_start();
if($_POST['token'] == $_SESSION['token']){
    unset($_SESSION['token']);
    echo "这是一个正常的提交请求";
}else{
    echo "这是一个非法的提交请求";
}
?>

微信红包功能我相信各位朋友都知道吧,但如果我们要把红包集成到网站那么要如何来做呢?下面小编就来为各位分享一个php 微信发红包接口测试实例,希望文章能够帮助到各位朋友


下面是一个类。使用方法:

$arr['openid']='ojgTTt8oF9VdYcGsJMACHpA-jy1U';
            $arr['hbname']="提现申请";
            $arr['body']="您的提现申请已经成功";
            $arr['fee']=1;
$comm = new Common_util_pub();         
$re = $comm->sendhongbaoto($arr);
var_dump($re);

注意证书位置和 商户后台设置的key需要修改。

<?php
header("Content-type: text/html; charset=utf-8");
 
class Common_util_pub
{
    
    /**
* hbname 红包名称  fee 红包金额 /元  body 内容  openid 微信用户id
* @param undefined $arr
*
* @return
*/
    
public function sendhongbaoto($arr){
 
//$comm = new Common_util_pub();
$data['mch_id'] = '120005402';
$data['mch_billno'] = '120005402'.date("Ymd",time()).date("His",time()).rand(1111,9999);
$data['nonce_str'] = self::createNoncestr();
$data['re_openid'] = $arr['openid'];
$data['wxappid'] = 'wx8axxxxxbac4905';
$data['nick_name'] = $arr['hbname'];
$data['send_name'] = $arr['hbname'];
$data['total_amount'] = $arr['fee']*100;
$data['min_value'] = $arr['fee']*100;
$data['max_value'] = $arr['fee']*100;
$data['total_num'] = 1;
$data['client_ip'] = $_SERVER['REMOTE_ADDR'];
$data['act_name'] = '测试活动';
$data['remark'] = '备注一下';
$data['wishing'] = $arr['body'];
if(!$data['re_openid']) {  
     $rearr['return_msg']='缺少用户openid';
     return $rearr;
}
$data['sign'] = self::getSign($data);
$xml = self::arrayToXml($data);
//var_dump($xml);
$url ="https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack";
$re = self::wxHttpsRequestPem($xml,$url);
$rearr = self::xmlToArray($re);
 
 
return  $rearr;
}
    
function trimString($value)
    {
        $ret = null;
        if (null != $value)
        {
            $ret = $value;
            if (strlen($ret) == 0)
            {
                $ret = null;
            }
        }
        return $ret;
    }
    
    /**
     *  作用:产生随机字符串,不长于32位
     */
    public function createNoncestr( $length = 32 )
    {
        $chars = "abcdefghijklmnopqrstuvwxyz0123456789"; 
        $str ="";
        for ( $i = 0; $i < $length; $i++ )  { 
            $str.= substr($chars, mt_rand(0, strlen($chars)-1), 1); 
        } 
        return $str;
    }
    
    /**
     *  作用:格式化参数,签名过程需要使用
     */
    function formatBizQueryParaMap($paraMap, $urlencode)
    {
        $buff = "";
        ksort($paraMap);
        foreach ($paraMap as $k => $v)
        {
            if($urlencode)
            {
               $v = urlencode($v);
            }
            //$buff .= strtolower($k) . "=" . $v . "&";
            $buff .= $k . "=" . $v . "&";
        }
        $reqPar;
        if (strlen($buff) > 0)
        {
            $reqPar = substr($buff, 0, strlen($buff)-1);
        }
        return $reqPar;
    }
    
    /**
     *  作用:生成签名
     */
    public function getSign($Obj)
    {
        foreach ($Obj as $k => $v)
        {
            $Parameters[$k] = $v;
        }
        //签名步骤一:按字典序排序参数
        ksort($Parameters);
        $String = $this->formatBizQueryParaMap($Parameters, false);
        //echo '【string1】'.$String.'</br>';
        //签名步骤二:在string后加入KEY
        $String = $String."&key="."254554sefg4exxxxxxxxs5cds1"; // 商户后台设置的key
        //echo "【string2】".$String."</br>";
        //签名步骤三:MD5加密
        $String = md5($String);
        //echo "【string3】 ".$String."</br>";
        //签名步骤四:所有字符转为大写
        $result_ = strtoupper($String);
        //echo "【result】 ".$result_."</br>";
        return $result_;
    }
    
    /**
     *  作用:array转xml
     */
public  function arrayToXml($arr)
    {
        $xml = "<xml>";
        foreach ($arr as $key=>$val)
        {
             if (is_numeric($val))
             {
                $xml.="<".$key.">".$val."</".$key.">";
 
             }
             else
                $xml.="<".$key."><![CDATA[".$val."]]></".$key.">"; 
        }
        $xml.="</xml>";
        return $xml;
    }
    
    /**
     *  作用:将xml转为array
     */
    public function xmlToArray($xml)
    {      
        //将XML转为array       
        $array_data = json_decode(json_encode(simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA)), true);     
        return $array_data;
    }
 
 
 
    
    
    
     public function wxHttpsRequestPem( $vars,$url, $second=30,$aHeader=array()){
        
                $ch = curl_init();
                //超时时间
                curl_setopt($ch,CURLOPT_TIMEOUT,$second);
                curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1);
                //这里设置代理,如果有的话
                //curl_setopt($ch,CURLOPT_PROXY, '10.206.30.98');
                //curl_setopt($ch,CURLOPT_PROXYPORT, 8080);
                curl_setopt($ch,CURLOPT_URL,$url);
                curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
                curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false);
 
                //以下两种方式需选择一种
 
                //第一种方法,cert 与 key 分别属于两个.pem文件
                //默认格式为PEM,可以注释
                curl_setopt($ch,CURLOPT_SSLCERTTYPE,'PEM');
                curl_setopt($ch,CURLOPT_SSLCERT,dirname(__FILE__).'/hongbao/apiclient_cert.pem');
                //默认格式为PEM,可以注释
                curl_setopt($ch,CURLOPT_SSLKEYTYPE,'PEM');
                curl_setopt($ch,CURLOPT_SSLKEY,dirname(__FILE__).'/hongbao/apiclient_key.pem');
 
                curl_setopt($ch,CURLOPT_CAINFO,'PEM');
                curl_setopt($ch,CURLOPT_CAINFO,dirname(__FILE__).'/hongbao/rootca.pem');
 
                //第二种方式,两个文件合成一个.pem文件
                //curl_setopt($ch,CURLOPT_SSLCERT,getcwd().'/all.pem');
 
                if( count($aHeader) >= 1 ){
                        curl_setopt($ch, CURLOPT_HTTPHEADER, $aHeader);
                }
 
                curl_setopt($ch,CURLOPT_POST, 1);
                curl_setopt($ch,CURLOPT_POSTFIELDS,$vars);
                $data = curl_exec($ch);
                if($data){
                        curl_close($ch);
                        return $data;
                }
                else {
                        $error = curl_errno($ch);
                        echo "call faild, errorCode:$error\n";
                        curl_close($ch);
                        return false;
                }
        }
    
}
 
 
?>

本文我们来分享一下php利用PHPOffice/PHPExcel类实现数据导入导出的方法实例,后面带数据导入导出的全步骤详细解析。

/**
 * PHPExcel数据导入方法
 * Document:https://github.com/PHPOffice/PHPExcel/blob/develop/Documentation/markdown/Overview/07-Accessing-Cells.md
 * @param string $file 文件名
 * @return msg  SUCCESS:1, FALSE:$msg
 * @author farwish.com
 */
include './PHPExcel.php';
include './PHPExcel/IOFactory.php';
function excelReader($file) {
  if(@fopen($file, 'r')) {
      $objReader = PHPExcel_IOFactory::createReader('Excel2007');
      
      if( ! $objReader->canRead($file)) {
        $objReader = PHPExcel_IOFactory::createReader('Excel5');
        if( ! $objReader->canRead($file)) {
          die('仅支持 .xls 类型的文件 !');
        }
      }
     
      $objReader->setReadDataOnly(true);

      $objPHPExcel = $objReader->load($file);

      $objWorksheet = $objPHPExcel->getActiveSheet();

      $highestRow = $objWorksheet->getHighestRow(); //10

      $highestColumn = $objWorksheet->getHighestColumn(); //C

      $betten = 'A2:'.$highestColumn.$highestRow;

      $dataArray = $objWorksheet->rangeToArray(
          $betten,
          '',
          TRUE,
          TRUE
        );
            
      if($dataArray && is_array($dataArray)) {
          foreach($dataArray as $v) {
              if(intval($v[0]) == 0) {
                  die('数据的格式不正确 !');
              }

              //Your code here...
        $msg = 1;
          }
      } else {
          $msg = '文件没有数据';
      }
  } else {
        $msg = '文件不存在 !';
  }
 
 return $msg; 
}


用phpExcel实现Excel数据的导入导出(全步骤详细解析)

很多文章都有提到关于使用phpExcel实现Excel数据的导入导出,大部分文章都差不多,或者就是转载的,都会出现一些问题,下面是本人研究phpExcel的使用例程总结出来的使用方法,接下来直接进入正题。

首先先说一下,本人的这段例程是使用在Thinkphp的开发框架上,要是使用在其他框架也是同样的方法,很多人可能不能正确的实现Excel的导入导出,问题基本上都是phpExcel的核心类引用路径出错,如果有问题大家务必要对路劲是否引用正确进行测试。

(一)导入Excel

第一,在前台html页面进行上传文件:如:
复制代码 代码如下:

<form method="post" action="php文件" enctype="multipart/form-data">
         <h3>导入Excel表:</h3><input  type="file" name="file_stu" />

           <input type="submit"  value="导入" />
</form>

第二,在对应的php文件进行文件的处理

 if (! empty ( $_FILES ['file_stu'] ['name'] ))

 {
    $tmp_file = $_FILES ['file_stu'] ['tmp_name'];
    $file_types = explode ( ".", $_FILES ['file_stu'] ['name'] );
    $file_type = $file_types [count ( $file_types ) - 1];

     /*判别是不是.xls文件,判别是不是excel文件*/
     if (strtolower ( $file_type ) != "xls")             
    {
          $this->error ( '不是Excel文件,重新上传' );
     }

    /*设置上传路径*/
     $savePath = SITE_PATH . '/public/upfile/Excel/';

    /*以时间来命名上传的文件*/
     $str = date ( 'Ymdhis' );
     $file_name = $str . "." . $file_type;

     /*是否上传成功*/
     if (! copy ( $tmp_file, $savePath . $file_name ))
      {
          $this->error ( '上传失败' );
      }

    /*

       *对上传的Excel数据进行处理生成编程数据,这个函数会在下面第三步的ExcelToArray类中

      注意:这里调用执行了第三步类里面的read函数,把Excel转化为数组并返回给$res,再进行数据库写入

    */
  $res = Service ( 'ExcelToArray' )->read ( $savePath . $file_name );

   /*

        重要代码 解决Thinkphp M、D方法不能调用的问题  

        如果在thinkphp中遇到M 、D方法失效时就加入下面一句代码

    */
   //spl_autoload_register ( array ('Think', 'autoload' ) );

   /*对生成的数组进行数据库的写入*/
   foreach ( $res as $k => $v )
   {
       if ($k != 0)
      {
           $data ['uid'] = $v [0];
           $data ['password'] = sha1 ( '111111' );
           $data ['email'] = $v [1];

           $data ['uname'] = $v [3];

          $data ['institute'] = $v [4];
         $result = M ( 'user' )->add ( $data );
         if (! $result)
         {
              $this->error ( '导入数据库失败' );
          }
      }
   }

}

第三:ExcelToArrary类,用来引用phpExcel并处理Excel数据的

class ExcelToArrary extends Service{

 public function __construct() {

     /*导入phpExcel核心类    注意 :你的路径跟我不一样就不能直接复制*/
     include_once('./Excel/PHPExcel.php');
 }

/**

* 读取excel $filename 路径文件名 $encode 返回数据的编码 默认为utf8

*以下基本都不要修改

*/

public function read($filename,$encode='utf-8'){

          $objReader = PHPExcel_IOFactory::createReader('Excel5');

          $objReader->setReadDataOnly(true);

          $objPHPExcel = $objReader->load($filename);

          $objWorksheet = $objPHPExcel->getActiveSheet();

    $highestRow = $objWorksheet->getHighestRow();
    $highestColumn = $objWorksheet->getHighestColumn();
      $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);
      $excelData = array();
    for ($row = 1; $row <= $highestRow; $row++) {
        for ($col = 0; $col < $highestColumnIndex; $col++) {
                 $excelData[$row][] =(string)$objWorksheet->getCellByColumnAndRow($col, $row)->getValue();
           }
         }
        return $excelData;

    }    

 }

第四,以上就是导入的全部内容,phpExcel包附在最后。

(二)Excel的导出(相对于导入简单多了)

第一,先查出数据库里面要生成Excel的数据,如:

$data= M('User')->findAll();   //查出数据
$name='Excelfile';    //生成的Excel文件文件名
$res=service('ExcelToArrary')->push($data,$name);

第二,ExcelToArrary类,用来引用phpExcel并处理数据的   

class ExcelToArrary extends Service{

       public function __construct() {

              /*导入phpExcel核心类    注意 :你的路径跟我不一样就不能直接复制*/
               include_once('./Excel/PHPExcel.php');
       }

     /* 导出excel函数*/
    public function push($data,$name='Excel'){

          error_reporting(E_ALL);
          date_default_timezone_set('Europe/London');
         $objPHPExcel = new PHPExcel();

        /*以下是一些设置 ,什么作者  标题啊之类的*/
         $objPHPExcel->getProperties()->setCreator("转弯的阳光")
                               ->setLastModifiedBy("转弯的阳光")
                               ->setTitle("数据EXCEL导出")
                               ->setSubject("数据EXCEL导出")
                               ->setDescription("备份数据")
                               ->setKeywords("excel")
                              ->setCategory("result file");
         /*以下就是对处理Excel里的数据, 横着取数据,主要是这一步,其他基本都不要改*/
        foreach($data as $k => $v){

             $num=$k+1;
             $objPHPExcel->setActiveSheetIndex(0)

                         //Excel的第A列,uid是你查出数组的键值,下面以此类推
                          ->setCellValue('A'.$num, $v['uid'])   
                          ->setCellValue('B'.$num, $v['email'])
                          ->setCellValue('C'.$num, $v['password'])
            }

            $objPHPExcel->getActiveSheet()->setTitle('User');
            $objPHPExcel->setActiveSheetIndex(0);
             header('Content-Type: application/vnd.ms-excel');
             header('Content-Disposition: attachment;filename="'.$name.'.xls"');
             header('Cache-Control: max-age=0');
             $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
             $objWriter->save('php://output');
             exit;
      }


POST数据我们常用的接受方式就是$_POST了,其实除了这种方法 之外还有很多的函数变更可以来接受的哦,具体我们来看看下文。


通常情况下用户使用浏览器网页表单向服务器post提交数据,我们使用PHP接收用户POST到服务器的数据,并进行适当的处理。但有些情况下,如用户使用客户端软件向服务端php程序发送post数据,而不能用$_POST来识别,那又该如何处理呢?


$_POST方式接收数据

$_POST方式是通过 HTTP POST 方法传递的变量组成的数组,是自动全局变量。如使用$_POST['name']就可以接收到网页表单以及网页异步方式post过来的数据,即$_POST只能接收文档类型为Content-Type: application/x-www-form-urlencoded提交的数据。

$GLOBALS['HTTP_RAW_POST_DATA']方式接收数据
如果用过post过来的数据不是PHP能够识别的文档类型,比如 text/xml 或者 soap 等等,我们可以用$GLOBALS['HTTP_RAW_POST_DATA']来接收。$HTTP_RAW_POST_DATA 变量包含有原始的POST数据。此变量仅在碰到未识别MIME 类型的数据时产生。$HTTP_RAW_POST_DATA 对于enctype="multipart/form-data" 表单数据不可用。也就是说使用$HTTP_RAW_POST_DATA无法接收网页表单post过来的数据。
php://input方式接收数据
如果访问原始 POST 数据的更好方法是 php://input。php://input 允许读取 POST 的原始数据。和 $HTTP_RAW_POST_DATA 比起来,它给内存带来的压力较小,并且不需要任何特殊的php.ini设置,而php://input不能用于 enctype="multipart/form-data"。
例如,用户使用某个客户端应用程序post给服务器一个文件,文件的内容我们不管它,但是我们要把这个文件完整的保存在服务器上,我们可以使用如下代码:
 
$input = file_get_contents('php://input');
file_put_contents($original, $input); //$original为服务器上的文件

以上代码使用file_get_contents('php://input')接收post数据,然后将数据写入$original文件中,其实可以理解为从客户端上传了一个文件到服务器上,此类应用非常多,尤其是我们PHP开发要与C,C++等应用程序开发进行产品联合开发时会用到,例如本站有文章:拍照上传就是结合flash利用此原理来上传照片的。
以下是一个小示例,演示了$_POST,$GLOBALS['HTTP_RAW_POST_DATA']和php://input三种不同方式的接收POST数据处理:

a.html
 
<form name="demo_form" action="post.php" method="post">
    <p><label>Name: </label><input type="text" class="input" name="name"></p>
    <p><label>Address: </label><input type="text" class="input" name="address"></p>
    <p><input type="submit" name="submit" class="btn" value="Submit"></p>
</form>
post.php
 
header("Content-type:text/html;charset=utf-8");
 
echo '$_POST接收:<br/>';
print_r($_POST);
echo '<hr/>';
 
echo '$GLOBALS[\'HTTP_RAW_POST_DATA\']接收:<br/>';
print_r($GLOBALS['HTTP_RAW_POST_DATA']);
echo '<hr/>';
 
echo 'php://input接收:<br/>';
$data = file_get_contents('php://input');
print_r(urldecode($data));

[!--infotagslink--]

相关文章

  • php生成二维码中文乱码问题解决方法

    最近做了个扫描二维码得到vcard的项目,遇到一个问题,有一部分生成完的二维码,用android系统手机扫描后得到的vcard中的中文姓名是乱码,经过比对发现,这部分vcard中ORG这个...2016-11-25
  • js URLdecode()与urlencode方法支持中文解码

    下面来介绍在js中来利用urlencode对中文编码与接受到数据后利用URLdecode()对编码进行解码,有需要学习的机友可参考参考。 代码如下 复制代码 ...2016-09-20
  • 运行vbs脚本报错无效字符、中文乱码的解决方法(编码问题)

    今天在写一个vbs的时候,发现中文乱码,后来写好代码正常运行的代码压缩一下给了同事,发现报无效字符,经过验证后发现原来是编码的问题导致,这里就为大家分享一下...2020-06-30
  • 关于Mysql中文乱码问题该如何解决(乱码问题完美解决方案)

    最近两天做项目总是被乱码问题困扰着,这不刚把mysql中文乱码问题解决了,下面小编把我的解决方案分享给大家,供大家参考,也方便以后自己查阅。首先:用show variables like “%colla%”;show varables like “%char%”;这两条...2015-11-24
  • C#读取中文文件出现乱码的解决方法

    这篇文章主要介绍了C#读取中文文件出现乱码的解决方法,涉及C#中文编码的操作技巧,非常具有实用价值,需要的朋友可以参考下...2020-06-25
  • Mysql在debian系统中不能插入中文的终极解决方案

    在debian环境下,彻底解决mysql无法插入和显示中文的问题Linux下Mysql插入中文显示乱码解决方案mysql -uroot -p 回车输入密码进入mysql查看状态如下:默认的是客户端和服务器都用了latin1,所以会乱码。解决方案:mysql>use...2013-10-04
  • linux mint 下mysql中文支持问题

    一.mysql默认不支持中文,它的server和db默认是latin1编码.所以我们要将其改变为utf-8编码,因为utf-8包含了地球上大部分语言的二进制编码 1.关闭mysql服务 sudo /etc/init.d/mysql stop 2.修改mysql配置文件 mysql配...2015-10-21
  • Windows服务器MySQL中文乱码的解决方法

    我们自己鼓捣mysql时,总免不了会遇到这个问题:插入中文字符出现乱码,虽然这是运维先给配好的环境,但是在自己机子上玩的时候咧,总得知道个一二吧,不然以后如何优雅的吹牛B。...2015-03-15
  • php怎么用拼音 简单的php中文转拼音的实现代码

    小编分享了一段简单的php中文转拼音的实现代码,代码简单易懂,适合初学php的同学参考学习。 代码如下 复制代码 <?phpfunction Pinyin($_String...2017-07-06
  • PHP json_encode() 函数详解及中文乱码问题

    在 php 中使用 json_encode() 内置函数(php > 5.2)可以使用得 php 中数据可以与其它语言很好的传递并且使用它。这个函数的功能是将数值转换成json数据存储格式。<&#63;php$arr = array ( 'Name'=>'希亚', 'Age'...2015-11-08
  • Java连接数据库oracle中文乱码解决方案

    这篇文章主要介绍了Java连接数据库oracle中文乱码解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-05-16
  • 解决HttpPost+json请求---服务器中文乱码及其他问题

    这篇文章主要介绍了解决HttpPost+json请求---服务器中文乱码及其他问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-01-22
  • php中iconv编码转换来解决中文乱码的问题

    用到iconv函数把抓取来过的utf-8编码的页面转成gb2312, 发现只有用iconv函数把抓取过来的数据一转码数据就会无缘无故的少一些 代码如下 复制代码 ...2016-11-25
  • php mail发邮件标题中文乱码的问题解决办法

    本文章来给大家介绍php mail发邮件标题中文乱码的问题解决办法,希望到此类问题的朋友可进入参考。 当使用下面的PHP语句发送电子邮件的时候,如果编码和接收邮箱编码...2016-11-25
  • FlashFXP连接站点中文显示乱码解决办法

    FlashFXP是一款常用的服务器客户连接软件了,我们可以通过FlashFXP来上传或下载文件,但有一些朋友使用FlashFXP时碰到中文目录或文件名乱码问题,那么要如何来解决呢?具体就...2016-10-10
  • php中把unicode编码转化为中文

    小编在网上看到最多的就是汉字转换unicode编码了,今天我们看到一个反过来的操作就是把unicode转换成中文了,下面一起来看看 这两天帮别人开发微信平台好友板块,存...2016-11-25
  • php 判断是否是中文/英文/数字示例代码

    复制代码 代码如下: $str='asb天水市12'; if (preg_match("/^[/x7f-/xff]+$/", $str)){ echo '全部是汉字'; }else { echo '不全是汉字'; } /** PHP自带的判断是否是中文, eregi('[^/x00-/x7F]', $str ) //中文 ereg...2013-10-04
  • python os.listdir()乱码解决方案

    在本篇文章里小编给大家整理的是一篇关于python os.listdir()乱码解决方案,对此有兴趣的朋友们可以学习下。...2021-01-31
  • php中文转换成拼音代码

    <?php教程 function cn2pinyin($_string, $_code='gb2312') { $_datakey = "a|ai|an|ang|ao|ba|bai|ban|bang|bao|bei|ben|beng|bi|bian|biao|bie|bin|bing|b...2016-11-25
  • JavaScript过滤字符串中的中文与空格方法汇总

    这篇文章主要介绍了JavaScript过滤字符串中的中文与空格方法汇总 的相关资料,需要的朋友可以参考下...2016-03-09