【浅析PHP中的字符串编码转换(自动识别原编码)】教程文章相关的互联网学习教程文章

PHP字符串编码转换

在Web开发中要经常进行字符串编码的转换,稍有不慎就会造成乱码。因此可以说,编码问题是个大问题。经过一番搜索,找到一段进行字符串编码转换的代码,然后进行了一下简单的包装,使用起来更加方便了。<?php function phpcharset($data, $to) {if (is_array($data)) {foreach ($data as $key => $val) {$data[$key] = phpcharset($val, $to);}} else {$encode_array = array(ASCII,UTF-8,GBK,GB2312,BIG5);$encoded = mb_dete...

JS中utf8和GBK的字符编码转换

资料链接:http://igogogo9.iteye.com/blog/1056691、PHP中的 json_encode 函数只限编码UTF-8的数据,当转换GBK或者GB2312等编码的数据时,会将汉字转为NULL。2、JavaScript 中json 的使用:① 将对象转为json字符串:JSON.stringify(obj)② 将json转为对象:dataObj = eval({"name":"Jack"});③ 将PHP生成的json转为对象:dataObj = eval(('Jack'))?>));3、JavaScript 中,GBK和UTF-8的转换:function GB2312UTF8(){this.Dig2Dec=...

php字符编码转换类,支持ANSI、Unicode、Unicodebigendian、UTF-8、UTF-8+Bom互相转换

php 字符编码转换类,支持ANSI、Unicode、Unicode big endian、UTF-8、UTF-8+Bom 互相转换。四种常见文本文件编码方式ANSI编码:无文件头(文件编码开头标志性字节)ANSI编码字母数字占一个字节,汉字占两个字节回车换行符,单字节, 十六进制表示为0d 0aUNICODE编码:文件头,十六进制表示为FF FE每一个字符都用两个字节编码回车换行符, 双字节,十六进制表示为 000d 000aUnicode big endian编码:文件头十六进制表示为FE FF后面...

php源码编码与转换出现“锘匡豢”

PHP源码编码与转换出现“锘匡豢”一、相关信息PHP源码直接转换到UTF-8后,很有可能会遇到下面的两个问题: 1. 首行代码为空; 2. 顶行有多个“锘匡豢”;导致出现以上问题的原因,可以看一下维基BOM词条,解决的方法也很简单,转换成UTF8后,将BOM的问题解决即可。使用Notepad++转换会更简单,更安全。二、问题描述HTML页面输出首行有空行或者出现“锘匡豢”字样三、解决方案使用Notepad++,打开所有需要转换的文件,然后点击菜单...

php数组编码转换小例子

function array_iconv($in_charset,$out_charset,$arr){ return eval(return .iconv($in_charset,$out_charset,var_export($arr,true).;)); }原理分析: var_export设置第二个参数为true,返回数组原型字符串,将字符串转换为utf-8编码,之后再用eval来执行返回(类似匿名函数?),至此完美解决问题。 后续:网上找到的方法,大多是利用递归调用iconv的方式,如果数组元素过多或者维数多一些,性能上肯定不怎么样了,更...

PHP文件夹下所有文件编码的转换

PHP转换文件夹下所有文件的编码 适合发布网站的其他编码版本 比如你有一个GBK版本 你想有一个UTF8版本 或者你只有GBK的源码 你想二次开发 但是你不想改变IDE的编码方式 你可以用这个程序将其批量转化为UTF8:代码如下:$input_encoding='gbk',$output_encoding='utf-8'){ if(file_exists($filename)) { if(is_dir($filename)) { foreach (glob("$filename $contents_after = iconv($input_encoding,$output_encoding,$conten...

php进行GB2312与UTF8编码转换的代码

Class GB2UTF8{var $gb; // 待转换的GB2312字符串var $utf8; // 转换后的UTF8字符串var $CodeTable; // 转换过程中使用的GB2312代码文件数组var $ErrorMsg; // 转换过程之中的错误讯息function GB2UTF8($InStr=""){$this->gb=$InStr;$this->SetGb2312();($this->gb=="")?0:$this->Convert();}function SetGb2312($InStr="gb2312.txt"){ // 设置gb2312代码文件,默认为gb2312.txt$this->ErrorMsg="";$tmp=@file($InStr);if (!$tmp) ...

php不使用iconv库进行gb2312与utf-8编码转换的函数

//对照表的使用$filename = "gb2utf8.txt";$fp = fopen($filename,"r");while(! feof($fp)) {list($gb,$utf8) = fgetcsv($fp,10);$charset[$gb] = $utf8;}fclose($fp);//以上读取对照表到数组备用/** gb2312到utf-8 **/function gb2utf8($text, &$charset) {//提取文本中的成分,汉字为一个元素,连续的非汉字为一个元素preg_match_all("/(?:[\x80-\xff].)|[\x01-\x7f]+/",$text,$tmp);$tmp = $tmp[0];//分离出汉字$ar = array_int...

php中数组编码转换的方法

unserialize(iconv(gbk,utf-8,serialize($array))); 结果是空白的。 借助var_export函数,最终函数如下:function array_iconv($in_charset,$out_charset,$arr){ return eval(return .iconv($in_charset,$out_charset,var_export($arr,true).;));} 原理分析: var_export函数中,设置第二个参数为true,返回数组原型字符串,将字符串转换为utf-8编码,之后再用eval来执行返回(类似匿名函数?)。 如此便轻松解决了php中数组编...

php数组编码转换的方法参考

本文介绍下,在php中对数组进行编码转换的一些方法,有需要的朋友参考下。在php编程中,对数组的操作,有时会遇上编码转换的相关问题。 因为一些特殊字符的显示效果的原因,于是把utf-8改成了GBK,由于使用了ajax技术,又涉及到了老问题——编码转换。 一些表单验证需要返回json数据,php的json_encode函数只支持utf-8编码,无奈只得iconv了,需要达到的效果是GBK数组转换成utf-8数组传给json_encode函数。 最初是这样操作的,将数...

学习php字符串编码的转换与判断

本文介绍下,php编程中进行字符串编码的转码与判断的一段代码,有需要的朋友可以拿去做个参考。在php中经常需要实现GBK 和 UTF-8 编码转换,比如像 PHP 中的 json_encode 本身根本不支持 GBK 形式的编码。 有两个库函数能够支持编码的转换,通常能够想到的就是 iconv 函数,你如:<?php iconv(GBK, UTF-8//IGNORE, 芒果小站); // 将字符串由 GBK 编码转换为 UTF-8 编码 但 iconv 只能解决编码预先知道的情况,如果字符串编码未知,...

PHP数组字符集编码转换的函数

<?php /** * 数组转编码 * @param array $array 待转码数组 * @param String $inCharset 原编码 * @param String $outCharset 转换后的编码 * @return $array 转换后的数组 * @site:bbs.it-home.org */private function arrayCoding ($array, $inCharset, $outCharset) { if (!is_array($array)) return false; foreach ($array as $key => &$value) { if (is_array($value)) { $value = $this->arrayCo...

php编码转换小例子

/* * 常用的编码问题 * * 1. 页面的乱码问题: * 页面的乱码问题主要是在于显示字体的编码与浏览器里面显示的编码不一致,浏览器输出的 * 编码是由页面文件中 * 来控制的,而如果你的程序里面输出的字符是乱码的话,那么就是程序输出的字体与上面设置的不是同一个编码,那么就会出现乱码 * 2. 数据库的乱码问题 * 数据库里面有默认的字符编码,如果你提交的字符编码与数据里面有编码不一到的话,那么数据库里面显...

php字符串编码转换示例

header("content-type: text/html; charset=utf-8"); echo mb_convert_encoding("你是我的好朋友","utf-8","gbk"); ?> 2、把 utf-8 编码字串转换成 gb2312 编码字串// 注意将此文件存盘成 utf-8 编码格式文件再测试 header("content-type:text/html;charset=gb2312"); echo mb_convert_encoding("你是我的好朋友","gb2312","utf-8"); ?> // 注意将此文件存盘成 utf-8 编码格式文件再测试header("content-type: text/h...

phpiconv函数解决utf-8与gb2312编码转换问题

$content = iconv("utf-8","gb2312",$content);这样做其实也对着了,看着确实是把utf-8转化为gb2312了,但是实际运行的话,往往都是以失败告终的,原因呢? 原因很简单,因为任何的函数都是执行错误的时候,同时很不幸的是iconv();就很终于出现错误。 正确做法:$content = iconv("utf-8","gb2312//ignore",$content);只要后面加上一个//ignore就行,加上这个就可以是iconv()函数忽略错误,继续执行。 同理,要像把gb2312换为utf-8...