二进制安全功能(binary-safe function)是指在一个二进制文件上所执行的不更改文件内容的功能或者操作。这能够保证文件不会因为某些操作而遭到损坏。二进制数据是按照一串0和 1的形式编码的。而绝大多数的程序会给某些特殊的比特串赋予不同的格式代码,所以当用户使用一个程序读取一个二进制文件时,该文件会被按照这个程序的规则进行解释。
位:"位(bit)"是电子计算机中最小的数据单位。每一位的状态只能是0或1。

字节:8个二进制位构成1个"字节(Byte)",它是存储空间的基本计量单位。1个字节可以储存1个英文字母或者半个汉字,换句话说,1个汉字占据2个字节的存储空间。

ASCIIAmericanStandardCodeforInformationInterchange缩写用制订计算机每符号应代码叫做计算机内码(code)每ASCII码1字节(Byte)储存0数字127代表同用符号例写AASCII码65写a则97由于ASCII字节七位高位并使用所高位编入套内码八位延伸ASCII(ExtendedASCII)码套内码加许外文表格等特殊符号目前用内码.ASCII 码范围:0~127

如果有一种编码,将世界上所有的符号都纳入其中。每一个符号都给予一个独一无二的编码,那么乱码问题就会消失。这就是 Unicode,就像它的名字都表示的,这是一种所有符号的编码。Unicode 只是一个符号集,它只规定了符号的二进制代码,却没有规定这个二进制代码应该如何存储。

UTF8是以8bits即1Bytes为编码的最基本单位,当然也可以有基于16bits和32bits的形式,分别称为UTF16和UTF32,但目前用得不多,而UTF8则被广泛应用在文件储存和网络传输中。

string mb_convert_encoding ( string str, string to_encoding [, mixed from_encoding] )
需要先enable mbstring 扩展库,在 php.ini里将; extension=php_mbstring.dll 前面的 ; 去掉
mb_convert_encoding 可以指定多种输入编码,它会根据内容自动识别,但是执行效率比iconv差太多;


string iconv ( string in_charset, string out_charset, string str )
注 意:第二个参数,除了可以指定要转化到的编码以外,还可以增加两个后缀://TRANSLIT 和 //IGNORE,其中 //TRANSLIT 会自动将不能直接转化的字符变成一个或多个近似的字符,//IGNORE 会忽略掉不能转化的字符,而默认效果是从第一个非法字符截断。

串行化的基础认识: 是指将一个变量(包括对象)转换成字节流的过程。串行化有效的解决了对象的保存和传输的问题.例如, 如果在用session并使用了 session_register() 来注册对象,这些对象会在每个 PHP 页面结束时被自动序列化,并在接下来的 每个页面中自动解序列化,这样在每个PHP页面中都可以使用这些对象。PHP为我们提供了两个函数,用来进行串行化和反串行化的操作,这两个函数分别 是:serialize()和unserialize()。serialize()可以处理除资源指针之外的所有类型, 该函数返回一个可以被存储在任何 地点的字节流表达式的字符串。