PHP实现自动识别原编码并对字符串进行编码转换的方法
本文实例讲述了PHP实现自动识别原编码并对字符串进行编码转换的方法。分享给大家供大家参考,具体如下:
/** * 对数据进行编码转换 * @param array/string $data 数组 * @param string $output 转换后的编码 * Created on 2016-7-13 */ function array_iconv($data, $output = 'utf-8') { $encode_arr = array('UTF-8','ASCII','GBK','GB2312','BIG5','JIS','eucjp-win','sjis-win','EUC-JP'); $encoded = mb_detect_encoding($data, $encode_arr); if (!is_array($data)) { return mb_convert_encoding($data, $output, $encoded); } else { foreach ($data as $key=>$val) { $key = array_iconv($key, $output); if(is_array($val)) { $data[$key] = array_iconv($val, $output); } else { $data[$key] = mb_convert_encoding($data, $output, $encoded); } } return $data; } }
更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP编码与转码操作技巧汇总》、《php面向对象程序设计入门教程》、《PHP数学运算技巧总结》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《PHP数据结构与算法教程》、《php程序设计算法总结》、《php正则表达式用法总结》、及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
相关推荐
-
php自动识别文件编码并转换为UTF-8的方法
PHP转换文件编码是一个比较简单的事情,但是在开发中传递中文参数的时候,有时候不知道是什么编码,结果造成了乱码的现象.这里有个非常方便的解决办法,可以自动识别编码并转换为UTF-8.具体代码如下: 复制代码 代码如下: function characet($data){ if( !empty($data) ){ $fileType = mb_detect_encoding($data , array('UTF-8','GBK','LATIN1','BIG5')) ;
-
PHP iconv 解决utf-8和gb2312编码转换问题
终于皇天不负有心人,答案还是让我找到了. 网上的都是这样用的 复制代码 代码如下: $content = iconv("utf-8","gb2312",$content); 这样做其实也对着了,看着确实是把utf-8转化为gb2312了,但是实际运行的话,往往都是以失败告终的,原因呢? 原因实际上也很简单,因为任何的函数都是执行错误的时候,同时很不幸的是iconv();就很终于出现错误.现在给你正确的答案. 真正的答案是这样的 复制代码 代码如下: $content
-
php自动识别文字编码并转换为目标编码的方法
本文实例讲述了php自动识别文字编码并转换为目标编码的方法.分享给大家供大家参考.具体如下: 在PHP处理页面的时候,我们对于字符集的转换都是采用了iconv或者mb_convert等函数,但,这其实是有一个前提的.即我们事先得知道in和out是什么样的编码,我们才能进行正确的转换. 虽然大多数转换都是在gbk和utf-8之间转,但如果不知道转换对象的编码怎么办呢?谷歌出来这么一个函数safeEncoding,可以简单的识别UTF8和GBK的编码.这个函数在一定程度上识别的很准确,但是在一些比较
-
浅析PHP中的字符串编码转换(自动识别原编码)
复制代码 代码如下: /** * 对数据进行编码转换 * @param array/string $data 数组 * @param string $output 转换后的编码 */function array_iconv($data,$output = 'utf-8') { $encode_arr = array('UTF-8','ASCII','GBK','GB2312','BIG5','JIS','eucjp-win','sjis-win','EUC-JP'); $enc
-
php 转换字符串编码 iconv与mb_convert_encoding的区别说明
iconv - Convert string to requested character encoding(PHP 4 >= 4.0.5, PHP 5) mb_convert_encoding - Convert character encoding(PHP 4 >= 4.0.6, PHP 5) 用法: string mb_convert_encoding ( string str, string to_encoding [, mixed from_encoding] ) 需要先启用 mbs
-
PHP下编码转换函数mb_convert_encoding与iconv的使用说明
不过英文一般不会存在编码问题,只有中文数据才会有这个问题.比如你用Zend Studio或Editplus写程序时,用的是gbk编码,如果数据需要入数据库,而数据库的编码为utf8时,这时就要把数据进行编码转换,不然进到数据库就会变成乱码. mb_convert_encoding的用法见官方: http://cn.php.net/manual/zh/function.mb-convert-encoding.php 做一个GBK To UTF-8 复制代码 代码如下: <?php header(&qu
-
基于php导出到Excel或CSV的详解(附utf8、gbk 编码转换)
php导入到excel乱码是因为utf8编码在xp系统不支持所有utf8编码转码一下就完美解决了utf-8编码案例Php代码 复制代码 代码如下: <?php header("Content-Type: application/vnd.ms-excel; charset=UTF-8"); header("Pragma: public"); header("Expires: 0"); header("Cache-Control: m
-
PHP学习笔记之字符串编码的转换和判断
复制代码 代码如下: iconv('GBK', 'UTF-8//IGNORE', '我们'); // 将字符串由 GBK 编码转换为 UTF-8 编码 但 iconv 只能解决编码预先知道的情况,如果字符串编码未知,则需要先探测其编码,这时可能会用到 mb_string 扩展库: 复制代码 代码如下: mb_detect_encoding('我们'); 可是 mb_detect_encoding 存在一个硬伤,经常出现判断不准确的情况.或许这样就可以解决: 复制代码 代码如下: // 使用 ic
-
php字符编码转换之gb2312转为utf8
在php中字符编码转换我们一般会用到iconv与mb_convert_encoding进行操作,但是mb_convert_encoding在转换性能上比iconv要差很多哦.string iconv ( string in_charset, string out_charset, string str ) 注意:第二个参数,除了可以指定要转化到的编码以外,还可以增加两个后缀://TRANSLIT 和 //IGNORE,其中 //TRANSLIT 会自动将不能直接转化的字符变成一个或多个近似的字符
-
PHP实现自动识别原编码并对字符串进行编码转换的方法
本文实例讲述了PHP实现自动识别原编码并对字符串进行编码转换的方法.分享给大家供大家参考,具体如下: /** * 对数据进行编码转换 * @param array/string $data 数组 * @param string $output 转换后的编码 * Created on 2016-7-13 */ function array_iconv($data, $output = 'utf-8') { $encode_arr = array('UTF-8','ASCII','GBK','GB2
-
C#使用ToUpper()与ToLower()方法将字符串进行大小写转换的方法
本文实例讲述了C#使用ToUpper()与ToLower()方法将字符串进行大小写转换的方法.分享给大家供大家参考.具体分析如下: C#通过ToUpper()方法将字符串转换成大写,代码如下: string sentence= "this is in upper case."; Console.WriteLine(sentence.ToUpper()); C#通过ToLower()方法将字符串转换成小写,代码如下: string sentence= "this is in L
-
解决无法在unicode和非unicode字符串数据类型之间转换的方法详解
今天用excel导入数据又遇到了-- 错误 0xc02020f6:数据流任务:列"column"无法在 unicode和非unicode字符串数据类型之间转换. 原因:仔细看了一下,发现有些字段是varchar的,而excel中估计都是nvarchar类型. 方法: 1.修改表字段类型为nvarchar. 2.导入一个临时表,再insert*** into *** select ***. 3.直接通过应用程序读入记录集,然后再一条一条insert into --.
-
C#将Unicode编码转换为汉字字符串的简单方法
C# 将js中的UNICODE转换为字符串,网上找的都不行,遇到有数字的转不出来,稍稍改了点,OK了! 实例如下: /// 将Unicode编码转换为汉字字符串 /// /// Unicode编码字符串 /// 汉字字符串 public static string ToGB2312(string str) { MatchCollection mc = Regex.Matches(str, "([\\w]+)|(\\\\u([\\w]{4}))"); if (mc != null &am
-
php中支持多种编码的中文字符串截取函数!
支持多种编码的中文字符串截取函数! 复制代码 代码如下: /* * @todo 中文截取,支持gb2312,gbk,utf-8,big5 * * @param string $str 要截取的字串 * @param int $start 截取起始位置 * @param int $length 截取长度 * @param string $charset utf-8|gb2312|gbk|big5 编码 * @param $suffix
-
Java Base64位编码与String字符串的相互转换,Base64与Bitmap的相互转换实例代码
首先是网上大神给的类 package com.duanlian.daimengmusic.utils; public final class Base64Util { private static final int BASELENGTH = 128; private static final int LOOKUPLENGTH = 64; private static final int TWENTYFOURBITGROUP = 24; private static final int EIGH
-
go语言实现字符串base64编码的方法
本文实例讲述了go语言实现字符串base64编码的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: package main import ( "fmt" "encoding/base64" ) func main() { var b bytes.Buffer w := base64.NewEncoder(base64.URLEncoding, &b) w.Write(data) w.Close() data := b.B
-
详解Python当中的字符串和编码
字符编码 我们已经讲过了,字符串也是一种数据类型,但是,字符串比较特殊的是还有一个编码问题. 因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理.最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),如果要表示更大的整数,就必须用更多的字节.比如两个字节可以表示的最大整数是65535,4个字节可以表示的最大整数是4294967295. 由于计算机是美国人发明的,因此,最早只有1
-
js对字符串进行编码的方法总结(推荐)
在用javascript对URL字符串进行编码中,虽然escape().encodeURI().encodeURIComponent()三种方法都能对一些影响URL完整性的特殊字符进行过滤. 但后两者是将字符串转换为UTF-8的方式来传输,解决了页面编码不一至导致的乱码问题. 例如:发送页与接受页的编码格式(Charset)不一致(假设发送页面是GB2312而接收页面编码是UTF-8),使用escape()转换传输中文字串就会出现乱码问题. 以下是JS下对URL进行编/解码的各种方法: 1.es
-
Python中字符串与编码示例代码
在最新的Python 3版本中,字符串是以Unicode编码的,即Python的字符串支持多语言 编码和解码 字符串在内存中以Unicode表示,在操作字符串时,经常需要str和bytes互相转换 如果在网络上传输或保存到磁盘上,则从内存读到的数据就是str,要把str变为以字节为单位的bytes,称为编码 如果从网络或磁盘上读取字节流,则从网络或磁盘上读到的数据就是bytes,要把bytes变为str,称为解码 为避免乱码问题,应当始终坚持使用UTF-8编码对str和bytes进行
随机推荐
- vbs 获取当前目录文件数量的代码(不包括子文件夹中的)
- asp.net 禁用viewstate在web.config里
- 微信通过页面(H5)直接打开本地app的解决方法
- Android入门之TableLayout应用解析(二)
- PHP的一个基础知识 表单提交
- 不用数据库的多用户文件自由上传投票系统(2)
- Python获取DLL和EXE文件版本号的方法
- jQuery中trigger()与bind()用法分析
- jQuery EasyUI 页面加载等待及页面等待层
- react实现pure render时bind(this)隐患需注意!
- 关于硬盘容量的说明
- Android远程获取图片并本地缓存
- 基于javaScript的this指向总结
- MySQL数据源表结构图示
- Service与Activity之间的通信(同一进程)
- C#验证身份证号码正确性的实例代码(收藏)
- android开发设计模式之——单例模式详解
- ReactNative中使用Redux架构总结
- 用iOS模拟器安装App的方法
- vue的keep-alive中使用EventBus的方法