**php字符编码转换类,支持ansi、big、utf-8、utf-8+bom相互转换。 **
**四种常见的文本文件编码方式**
**ansi 代码**:
无文件头(文件编码开头的有效字节)
ansi编码的字母数字占一个字节,汉字占两个字节
回车换行php 文件编码转换,单字节,十六进制表示为0d 0a
**编码:**
文件头,十六进制表示为ff fe
每个字符用两个字节编码
回车,换行,双字节,十六进制表示为000d 000a
** 大编码:**
文件头的十六进制表示为fe ff
后面的编码就是把字符的高位放在前面,低位放在后面,正好是编码的逆过程
回车,换行,双字节,十六进制表示为 0d00 0a00
**utf-8 编码:**
文件头,十六进制表示为ef bb bf
utf-8 是一种变长字符编码。数字、字母、回车、换行都用1个字节表示,汉字占3个字节。
回车换行,单字节,十六进制表示为0d 0a
**转换原则:先将字符编码转换为utf-8,再从utf-8转换为对应的字符编码。 **
**..php**
~~~
/**字符编码转换类,ansi,,big,utf-8、utf-8+bom相互转换
*日期:2015-01-28
*:
*版本:1.0
*
*功能:
* 转换
* 将编码转换为 utf-8 编码
* 将 utf-8 编码转换为输出编码
*/
{//
$ = 空; // 源代码
$ = 空; // 输出代码
$ = ('utf-8','utf-8bom','ansi','','');
/**初始化
* @$ 源码编码
* @$ 输出编码
*/
($, $){
$ = ($);
$ = ($);
//查看源码
if(($, $this->)){
$this-> = $;
}
//检查输出编码
if(($, $this->)){
$this-> = $;
}
}
/**转化
* @ $str 要转换的字符串
* @ 转换后的字符串
*/
($str){
$str = $this->($str); // 先转utf8
$str = $this->($str); // 从utf8转换成对应的编码
$str;
}
/**将编码转为utf-8编码
* @ $str
* @
*/
($str){
if($this->=='utf-8'){ // 编码已经是utf-8了,不用转
$str;
}
($this->){
case'utf-8bom':
$str = ($str, 3);
;
case'ansi':
$str = ('gbk','utf-8//', $str);
;
案例'':
$str = ('utf-16le','utf-8//', ($str, 2));
;
案例'':
$str = ('utf-16be','utf-8//', ($str, 2));
;
:
;
}
$str;
}
/**将utf-8编码转换为输出编码
* @ $str
* @
*/
($str){
if($this->=='utf-8'){ // 输出码已经是utf-8了php 文件编码转换,不用转
$str;
}
($this->){
case'utf-8bom':
$str = \xef\xbb\xbf.$str;
;
case'ansi':
$str = ('utf-8','gbk//', $str);
;
案例'':
$str = \xff\xfe.('utf-8','utf-16le//', $str);
;
案例'':
$str = \xfe\xff.('utf-8','utf-16be//', $str);
;
:
;
}
$str;
}
} // 结束
~~~
**demo:** 大到 utf-8+bom
~~~
..php;
$str = ('/.txt');
$obj = new('','utf-8bom');
$ = $obj->($str);
('/utf-8bom.txt', $, true);
~~~
**源码下载地址:【点击查看】()**
嘉兴到武夷山物流专线网络推广区别于传统营销有样的好处呢常州到日照物流专线邯郸到莱芜物流专线企业网站建设专业流程应该注意哪些问题做SEO操作不妨考虑这几个重要的因素芜湖到东台物流专线如何提高网站的稳定性