• 技术文章 >后端开发 >PHP问题

    如何解决php ajax post 乱码问题

    藏色散人藏色散人2020-10-10 09:55:05原创75

    php ajax post乱码的解决办法:首先打开相应的PHP文件;然后设置contentType;接着设置页面的编码格式;最后转换SQL server数据库编码即可。

    推荐:《PHP视频教程

    ajax+php POST方法发送数据(解决后端中文乱码问题)

    前端Ajax调用接口,后端接收数据保存数据库。

    注意contentType一定这样设置。

    if(isSuccess){
                  
                   var token = sessionStorage.token;
                   $.ajax({
                       type:'post',
                       url:'../../api/container/'+token+'/addContainerDamageReport',
                       contentType:'application/x-www-form-urlencoded;charset=utf-8',
                       data:{'containerName':'HJSY'+containerName,'username':username,'description':descript,'damageTime':damageTime
                            ,'reportTime':reportTime,'damageLevel':badLevel,'damageType':badType},
                       cache:false,
                       dataType:'json',
                       success:function(data){
                        $('#submit').attr('data-dismiss',"modal");
                            console.log(data)
                       }
                   })
               }

    后端接受:

    页面的编码格式utf-8,SQL server数据库是gbk,注意转换,否则插入进去是乱码。

    if($action=='addContainerDamageReport')
    {
    $ret["IsInsert"]=false;
    if($conn!=false)
    {
    $containerName = isset($_POST['containerName'])?$_POST['containerName']:"";
    $username = isset($_POST['username'])?$_POST['username']:"";
    $description = isset($_POST['description'])?iconv("utf-8","gbk",$_POST['description']):"";
    $damageTime = isset($_POST['damageTime'])?$_POST['damageTime']:"";
    $reportTime = isset($_POST['reportTime'])?$_POST['reportTime']:"";
    $damageLevel = isset($_POST['damageLevel'])?$_POST['damageLevel']:"";
    $damageType = isset($_POST['damageType'])?$_POST['damageType']:"";
    $SqlString="INSERT INTO [Mopex].[dbo].[ContainerDamageReport]
    ([Id],[ContainerName],[DamageTime],[ReportTime]
    ,[DamageLevel],[CheckName],[DamageType],[Description]
    ,[ReportName],[Status],[CheckTime])
    values(newId(),'".$containerName."','".$damageTime."','".$reportTime."',
    '".$damageLevel."','admin','".$damageType."','".$description."','".$username."',
    0,'1900-01-01 00:00:00.0000000')";
    OpenDB($conn,$databasename);
    $rs_insert = DB_Query($conn,$SqlString);
    if($rs_insert != false)
    {
    $ret["IsInsert"]=true;
    $DataList[0]=array('containerName'=>$containerName,'username'=>$username,
    'damageTime'=>$damageTime,'reportTime'=>$reportTime,'damageLevel'=>$damageLevel,'damageType'=>$damageType,
    'description'=>$description,'status'=>'0');
    }
    DB_Close($conn);
    }
    }

    以上就是如何解决php ajax post 乱码问题的详细内容,更多请关注php中文网其它相关文章!

    本文原创发布php中文网,转载请注明出处,感谢您的尊重!
    专题推荐:php ajax
    上一篇:如何解决无法定位php5ts.dll的问题 下一篇:php图片类型如何转换
    第13期线上培训班

    相关文章推荐

    • php 查询mysql乱码怎么办• 如何解决php-fpm乱码问题• php数组转json出现中文乱码怎么办• php字符串截取乱码怎么办

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网