2020.01.18

时间:2020-01-18
本文章向大家介绍2020.01.18,主要包括2020.01.18使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

2020/01/18

1.json数据的解码和编码

在不同的语言下,有不同的解码和编码方法。我们现在看看php下如何对json数据编码和解码的。

<?php
   $json_data = array(
'date' => '2020.01.18',
'city' => 'Yantai',
'weather' => 'sunny'
);
?>

在php中,对一个对象json编码,可以使用php内置的函数:json_encode

对上面的数组进行json编码后,我们得到一个字符串

{"date":"2020.01.18","city":"Yantai","weather":"sunny"}

同样的,我们对上面这个字符串json解码,使用php内置函数json_decode

就可以得到这个字符串对应的对象

另:json_decode函数有第二个参数。json_decode($array,true)当第二个参数为true时返回数组,默认值为false 返回对象。

2.数据在前后端传输过程中的转化情况

因为浏览器的编码规则和服务器的解码规则不一样,有可能会导致前端传给后端“一串乱码”。所以我们为了防止这种情况的发生,通常先会将数据转变为json格式,然后告诉浏览器我们要使用哪种方法进行编码。

前后端交互过程中涉及的编码

  1. Browser cilent: 首先,浏览器的设置里有设置编码格式,一般设置为UTF-8。

  2. AJAX request: AJAX异步请求的过程中可以设置编码,contentType:"application/x-www-form-urlencoded; charset=utf-8"

  3. PHP cilent: PHP通过$_POST这个全局变量接收前端POST过来的数据,编码格式为AJAX在请求头中设置的charset=utf-8,PHP操作的过程中可以通过iconv函数库自行转码,例如iconv("UTF-8","GB2312//IGNORE",$data)

  4. connection: 在PHP与数据库连接的过程中可以设置connection过程中使用的编码格式,例如CodeIgniter框架可以在数据库配置文件database.php中,设置'char_set' => 'latin1'

  5. databases: 数据会先把数据从php客户端的编码转为转为connection中设置的编码,再以字节流的形式传输并插入数据库。

常见的字符编码方式

  • UTF-8 万国码

  • latin1 又称“西欧语言”,是mysql数据库默认设置。为单字节编码

  • gb2312 一共收录了7445个字符,包括6763个汉字和682个其它符号。

  • GBK 汉字内码扩展规范,支持繁体与简体和许多符号

参考资料

 

原文地址:https://www.cnblogs.com/peachheart3/p/12209631.html