字符串本质上就是字符数组,数组长度就是字符串长度。
配置文件里php字符串指定了一个默认编码。
位:"位(bit)"是电子计算机中最小的数据单位。每一位的状态只能是0或1。
字节:8个二进制位构成1个"字节(byte)",它是存储空间的基本计量单位。1个字节可以储存1个英文字母或者半个汉字,换句话说,1个汉字占据2个字节的存储空间。
编码就是用文字、符号或者数码表示特定对象(信息)的过程。计算机编码采用的是二进制编码。ascii=america standard code for information interchange,美国信息交换标准码,作为数据传输的标准码。
由8个位来组成:使用7 个位来表示英文字母、数字0~9及其它符号, 一般还加上一位奇偶校验。用8位表示256个不同文字符号的是ascⅱ扩展编码方式。
目前已确认为国际标准**。
unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。2023年开始研发,2023年正式公布。
中文的unicode码的范围4e00-9fa5
utf-8(8-bit unicode transformation format)是一种针对unicode的可变长度字符编码,又称万国码。
utf-8是一种变长字节编码方式。
不定长,最多占4个字节,汉字是三个字节或者四个字节。
bom(byte-order mark),即字节顺序标记,它是插入到以utf-8、utf16或utf-32编码unicode文件开头的特殊标记,用来识别unicode文件的编码类型。
gb2312是对ascii的中文扩展,gbk 包括了 gb2312 的所有内容,同时又增加了近20000个新的汉字(包括繁体字)和符号。
如果面向的使用人群绝大部分都是中国人,用 gbk 等编码也可以。但是目前的电脑来看,硬盘都是白菜价,电脑性能也已经足够无视这点性能的消耗了。所以推荐所有的网页使用统一编码:
utf-8。
1. 发现iconv在转换字符 "-到gb2312时会出错,如果没有ignore参数,所有该字符后面的字符串都无法被保存。不管怎么样,这个 "-都无法转换成功,无法输出。
另外mb_convert_encoding没有这个bug。
2. mb_convert_encoding 可以指定多种输入编码,它会根据内容自动识别, 但是执行效率比iconv差太多;如:
str = mb_convert_encoding($str,"euc-jp","ascii,jis,euc-jp,sjis,utf-8");ascii,jis,euc-jp,sjis,utf-8”的顺序不同效果也有差异 。
3. 一般情况下用 iconv,只有当遇到无法确定原编码是何种编码,或者iconv转化后无法正常显示时才用mb_convert_encoding 函数 。
统一编码:建议都是utf8
源码文件的编码。
请求头的编码。
系统默认编码。
数据库编码。
字符串传输时候的编码。
把对象的状态保存下来,需要时再将其回复。串行化是把每个对象转化为二进制字符串。file_put_contents,file_get_contents
posix风格的正则表达式使用unix地区系统(locale system),该系统提供了排序和识别字符的函数来让你智能地处理其他非英语的文本。特别地,各种语言组成单词的”字母”(如à和)不同,posix正则表达式考虑到了这一点并提供相应的字符类。
然而,posix正则表达式是为使用仅有原文的数据而设计的。如果数据中有空字节(\x00),那么正则表达式函数把它理解为字符串的末尾,并且匹配不会超过该字节位置。
foreach,foreach不需要知道数组的长度,依次递归数组元素,而for需要知道数组长度还要进行索引++或--的操作。
hashtable
初级程序员与高级程序员的区别
初级程序员与高级程序员的区别一般对于一个问题,初级程序员和高级程序员考虑这个问题的方法绝对是不同的。比如,在初级程序员阶段时,他会觉得vb也能做出应用来,且看起来也不错。但到了中级程序员时,他可能就不会选择vb了,可能会用mfc,这时,也能做出效果不错的程序。到高级程序员时,他绝对不是首先选择以上工...
高级程序员考试
从供选择的答案中,选出填入下面叙述中?内的最确切解答,把相应的编号写在答卷的对应栏内。试题一。在软件开发过程中常用图作为描述工具。如dfd就是面向a 分析方法的描述工具。在一套分层dfd中,如某一张图中有n个加工 process 则这张图允许有b张子图。在一张dfd中,任意两个加工之间c。在画分层d...
高级程序员试题
一 选择题 单选或多选题每题3分,多选时漏选得1分 1.下列说法正确的是 语言不区分大小写程序以类class为基本单位为j a虚拟机英文缩写d.运行j a程序需要先安装jre或jdk答案 2.下列语句中,正确的项是 e,a,b 10 c,d a e 0.0d c 0.0f 答案 3.一个int类型的...