基础知识

1.有几种表达方式(查看手册)
2.单引号和双引号的区别,双引号解析变量、\n,\t等,八进制与十六进制编码

内部存储方式

c语言中怎么表示字符串,结构体存储了字符指针和长度
1.字符串可以用[]和{}访问某个字符
2.字符串长度可以达到2G(内存)
3.常见的函数都是单字节处理方式
4.php字符串是二进制安全的。二进制安全:在C语言中,如果$str = '1235\0sss';\0的位置是被截断的,这种就不是二进制安全的,在PHP中,php字符串的结构体因为有len长度的属性,是不会被截断的,原样输出,所以为二进制安全的。
5.用超出字符串长度的下标写入将会拉长字符串并以空格填充。非整数类型下标会被转换成整数。非法类型下标会产生一个e_notice级别错误

串行化

把其它不方便存储的数据类型array,object等转换为字符串,就叫串行化
json_encode、serialize、var_export常用的串行化函数
json_encode、serialize性能对比json_encode略胜一筹但并不明显。
var_export将数组转换成原样的字符串并打印到屏幕。带第二个参数true则返回值,将内容写入文件的时候常用。将数组存储在文件里,当做文件缓存的形式,是非常有用的

编码

b bit位 二进制最小的信息单位 8b=1B
B byte字节
字符
字符集
字符编码

ASCII(美国信息交换专属编码),基于拉丁字母的一套编码,使用7位表示一个字符,共128个字符
ISO-8859-1 ASCII的扩展码,别名latin1,主要是后来欧洲人使用
美国西欧人民很幸福,其他国家怎么办
BIG5是最开始的时候台湾5家计算机厂商创建的中文编码,也叫大五码
GB2312是由中国国家标准总局发布,共94段*94个元素,也叫区位码6763个汉字
GBK是在GB2312 的基础上添加了许多生僻的汉字
对于其他国家也有自己的编码方式,ISO组织商讨解决方案,UNICODE就出现了,总数超过65535个字符,两个字节表示,后用4个字节表示1个字符
UNICODE是字符集,UTF-8,UTF-16,UTF-32是编码解决方案

UTF-8和GBK编码原理

GBK编码方式

区位码 打开编码源码,可以看到是一块一块的,一块叫做区,其中的第几行几列叫作位,所以叫区位码
国标码 并不是计算机内使用的计算机编码
机内码

UTF编码方式

如何获取一个汉字的拼音
UTF-8编码
UTF的BOM头,用来规范编码在不同机器的显示顺序
如何判断输入的文字是GBK还是UTF-8
编码的总结,UTF-8对程序员是有利的,一些函数比如json_encode只支持UTF-8,GBK更加节约空间

php数组原理与高级应用

基础

定义构造数组,array(),[],$arr[0]='22',对象也可以当做数组来用
key,value的定义条件
访问
数组的删除unset
其他类型转换为数组
数组的遍历
数组遍历foreach的原理

数组底层结构

数组的内部存储结构
哈希表的原理
HashTable结构体
bucket结构体
数组的扩容问题
排序的原理

需要关注的知识点

php位运算
php输入流
数组与数据结构

字符串编码原理--PHP数组原理与高级应用的更多相关文章

  1. java中字符串编码转换

    Java 正确的做字符串编码转换 字符串的内部表示? 字符串在java中统一用unicode表示( 即utf-16 LE) , 对于 String s = "你好哦!"; 如果源码 ...

  2. 不得不知道的Python字符串编码相关的知识

    开发经常会遇到各种字符串编码的问题,例如报错SyntaxError: Non-ASCII character 'ascii' codec can't encode characters in posi ...

  3. 【转载】不得不知道的Python字符串编码相关的知识

    原文地址:http://www.cnblogs.com/Xjng/p/5093905.html 开发经常会遇到各种字符串编码的问题,例如报错SyntaxError: Non-ASCII charact ...

  4. PHP字符串——编码与转义

    因为PHP程序经常与HTML页.Web地址(URL)以及数据库交互,所以PHP提供一些函数来帮助你处理这些类型的数据.HTML.Web页地址和数据库命令都是字符串,但是它们每个都要求不同的字符以不同的 ...

  5. JAVA 字符串编码总结

    java 为了解决跨平台,字符串编码的有点特殊 String newStr = new String(oldStr.getBytes(), "UTF-8");java中的Strin ...

  6. 完整的java字符串编码转换代码

    package book.String; import java.io.UnsupportedEncodingException; /** *//** * 转换字符串的编码 * @author joe ...

  7. JAVA字符串编码转换常用类

    无论是对程序的本地化还是国际化,都会涉及到字符编码的转换的问题.尤其在web应用中常常需要处理中文字符,这时就需要进行字符串的编码转换,将字符串编码转换为GBK或者GB2312.一.关键技术点:    ...

  8. javascript中的字符串编码、字符串方法详解

    js中的字符串是一种类数组,采用UTF-16编码的Unicode字符集,意味字符串的每个字符可用下标方式获取,而每个字符串在内存中都是一个16位值组成的序列.js对字符串的各项操作均是在对16位值进行 ...

  9. java字符串应用之字符串编码转换

    [转载]原文地址:https://blog.csdn.net/zhouyong80/article/details/1900100 无论是对程序的本地化还是国际化,都会涉及到字符编码的转换的问题.尤其 ...

随机推荐

  1. Jmeter接口测试常见的乱码问题三种解决方法

    使用Jmeter时经常遇到中文乱码问题,下面总结三种常用的解决方式. 1. 2.在Jmeter安装文件bin中找到jmeter.properties,打开jmeter.properties,搜索“IS ...

  2. 5.flask知识点补充

    1.WTForms表单验证基本使用 flask-wtf是一个简化了WTForms操作的一个第三方库,WTForms表单的两个主要的功能jiushi就是验证用户提交数据的合法性以及渲染模板.当然还包括其 ...

  3. jQuery,月历,左右点击事件实现月份的改变

    html页面: <div class="recordbriefing-title-top-body"> <span class="record-left ...

  4. python中的迭代器详解

    #原创,转载请先联系 理论性的东西有点枯燥,耐心点看- 1.迭代是什么? 我们知道可以对list,tuple,dict,str等数据类型使用for...in的循环语法,从其中依次取出数据,这个过程叫做 ...

  5. ZOJ-3822

    Domination Time Limit: 8 Seconds      Memory Limit: 131072 KB      Special Judge Edward is the headm ...

  6. hdu 1054(最小点覆盖集)

    Strategic Game Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  7. list 迭代器随机范围内移动

    Increments an iterator by a specified number of positions. template<class InputIterator, class Di ...

  8. PreparedStatement 和 Statement 实现基本的批处理

    批处理:若需要对数据库进行多步操作,则就没必要每次都和数据库进行一次通信,这样很消耗资源和时间.则需要将操作进行批处理:    Statement方式来实现批处理        优点:         ...

  9. 福州三中集训day4

    第6天写第4天的博客….可以说是很弱了…… 讲了一天的高级数据结构,可以说很迷,先是并查集,然后是树状数组,线段树,MAP函数,KMP算法. 很难……确实不是很清楚…但是很重要,回去以后这应该说是优先 ...

  10. 位运算和enum中的位运算

    1.位逻辑非运算 ~ 位逻辑非运算是单目的,只有一个运算对象.位逻辑非运算按位对运算对象的值进行非运算,即:如果某一位等于0,就将其转变为1:如果某一位等于1,就将其转变为0. 比如,对二进制的100 ...