字符串编码原理--PHP数组原理与高级应用
基础知识
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数组原理与高级应用的更多相关文章
- java中字符串编码转换
Java 正确的做字符串编码转换 字符串的内部表示? 字符串在java中统一用unicode表示( 即utf-16 LE) , 对于 String s = "你好哦!"; 如果源码 ...
- 不得不知道的Python字符串编码相关的知识
开发经常会遇到各种字符串编码的问题,例如报错SyntaxError: Non-ASCII character 'ascii' codec can't encode characters in posi ...
- 【转载】不得不知道的Python字符串编码相关的知识
原文地址:http://www.cnblogs.com/Xjng/p/5093905.html 开发经常会遇到各种字符串编码的问题,例如报错SyntaxError: Non-ASCII charact ...
- PHP字符串——编码与转义
因为PHP程序经常与HTML页.Web地址(URL)以及数据库交互,所以PHP提供一些函数来帮助你处理这些类型的数据.HTML.Web页地址和数据库命令都是字符串,但是它们每个都要求不同的字符以不同的 ...
- JAVA 字符串编码总结
java 为了解决跨平台,字符串编码的有点特殊 String newStr = new String(oldStr.getBytes(), "UTF-8");java中的Strin ...
- 完整的java字符串编码转换代码
package book.String; import java.io.UnsupportedEncodingException; /** *//** * 转换字符串的编码 * @author joe ...
- JAVA字符串编码转换常用类
无论是对程序的本地化还是国际化,都会涉及到字符编码的转换的问题.尤其在web应用中常常需要处理中文字符,这时就需要进行字符串的编码转换,将字符串编码转换为GBK或者GB2312.一.关键技术点: ...
- javascript中的字符串编码、字符串方法详解
js中的字符串是一种类数组,采用UTF-16编码的Unicode字符集,意味字符串的每个字符可用下标方式获取,而每个字符串在内存中都是一个16位值组成的序列.js对字符串的各项操作均是在对16位值进行 ...
- java字符串应用之字符串编码转换
[转载]原文地址:https://blog.csdn.net/zhouyong80/article/details/1900100 无论是对程序的本地化还是国际化,都会涉及到字符编码的转换的问题.尤其 ...
随机推荐
- measure time program
#include <time.h> int delay(int time) { int i,j; for(i =0;i<time;i++) for(j=0;j<10000;j+ ...
- twitter api的使用获取关注者的时间线
# -*- coding: utf-8 -*- from tweepy import OAuthHandler import datetime import pandas as pd import t ...
- 只运行一个exe应用程序的使用案例
应用程序的exe启动设置 using System;using System.Diagnostics;using System.Reflection;using System.Runtime.Inte ...
- Vim常见配置与命令
本文引自http://www.acczy.net/?p=301,在自己这里放一个以后方便查看 1. 基本安装 安装Vim,Windows系统中的主目录(类似于Linux的Home)中建立vimfile ...
- hdu 5185(动态规划)
Equation Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Su ...
- Spring ClassPathXmlApplicationContext和FileSystemXmlApplicationContext读取配置文件的方法
先说:ClassPathXmlApplicationContext 这个类,默认获取的是WEB-INF/classes/下的路径,也就是在myeclipse的src下的路径,所以用这个是获取不到WEB ...
- 安装smartmontool报错:libc6-dev : 破坏:
https://blog.csdn.net/weixin_38705903/article/details/81947717
- AC日记——由乃与大母神原型和偶像崇拜 洛谷 P3792
由乃与大母神原型和偶像崇拜 思路: 逆元+线段树维护和+线段树维护平方和+线段树维护最大最小值: 代码: #include <bits/stdc++.h> using namespace ...
- 如何修改wamp目录【成功】
Wampserver安装好后,“www目录”默认为X:/wamp/www,(这里的X是盘符)也就是wampserver安装目录下的www文件夹.实际使用中,默认设置往往不是我们想要的,可能改成其他文件 ...
- 路由网关zuul(七)
一.定义 Zuul包含了请求的路由和过滤的2个主要的功能: 其中路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础而过滤器功能则负责对请求处理过程进行干预,是实现请求校验,服 ...