基础知识

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. pycharm配置教程

    http://blog.csdn.net/u013088062/article/details/50100121

  2. 预处理ifndef

    #ifdef 详解 这几个宏是为了进行条件编译.一般情况下,源程序中所有的行都参加编译.但是有时希望对其中一部分内容只在满足一定条件才进行编译,也就是对一部分内容指定编译的条件,这就是“条件编译”.有 ...

  3. Oracle rman 全备份的一个小例子

    run{  allocate channel d1 type disk;  backup database format='/u01/backup/%T_%d_%s.bak';  sql 'alter ...

  4. 2.jinja2

    1.jinja2模板介绍和查找路径 from flask import Flask, render_template import os # 之前提到过在渲染模板的时候,默认会从项目根目录下的temp ...

  5. centos6.5 挂载远程目录

    查看nfs程序是否安装: [root@crawler_mv02 ~]# rpm -qa |grep rpcbindrpcbind-0.2.0-13.el6_9.1.x86_64[root@crawle ...

  6. 【 Python 】函数的参数

    一.默认参数: 默认参数可以简化函数的调用,设置默认参数时,有几点要注意: 1,必选参数在前,默认参数在后,否则python的解释器会报错. 2,如何设置默认参数. 当函数有多个参数时,把变化大的参数 ...

  7. mysql数据库设计之物理设计

    一.存储引擎 推荐使用Innodb,这也是mysql默认使用的存储引擎,支持事务 二.属性的选择 字符选择: 1.char,存定长,速度快,存在空间浪费的可能,会处理尾部空格,上限255字节.(utf ...

  8. Python:文件操作技巧(File operation)(转)

    Python:文件操作技巧(File operation) 读写文件 # ! /usr/bin/python #  -*- coding: utf8 -*- spath = " D:/dow ...

  9. [linux]多线程下载

    axel -n 10 -o /tmp/ http://soft.vpser.net/lnmp/lnmp0.7-full.tar.gz # 10是线程数

  10. wwwscan网站目录文件批量扫描工具

    准备一个比赛样题里面给的一个扫描的工具: 不知道怎么用就上网百度了一下果然有关于这个软件的两篇介绍(感觉写的很好),第一篇介绍的应该和我的工具一样,也给了例子(现在Google不能访问了)和参数介绍, ...