php utf8 gbk 数组 互转

这些都是工作中常用的 前几年写过 但没有记录的习惯,后边有要用到麻烦,现在记录下 以后直接拿来用

数组里的 utf8_to_gbk 方法 是上一篇写的 直接调用 
    public static function utf8_to_gbk_arr($arr) {
        if (!$arr) {
            return $arr;
        }
        if (!is_array($arr)) {
            return self::utf8_to_gbk($arr);
        }
        foreach ($arr as $key=>$val) {
            if (!is_string($val)) {
                continue;
            }
            $arr[$key] = self::utf8_to_gbk($val);
        }
        return $arr;
    }

    public static function gbk_to_utf8_arr($arr) {
        if (!$arr) {
            return $arr;
        }
        if (!is_array($arr)) {
            return self::gbk_to_utf8($arr);
        }
        foreach ($arr as $key=>$val) {
            if (!is_string($val)) {
                continue;
            }
            $arr[$key] = self::gbk_to_utf8($val);
        }
        return $arr;
    }
时间: 2024-08-11 07:44:48

php utf8 gbk 数组 互转的相关文章

utf8 gbk 互转

public static function utf8_to_gbk($utfstr) { return iconv("utf-8", "gbk//IGNORE", $utfstr); } static function gbk_to_utf8($gbstr) { return mb_convert_encoding($gbstr, "utf-8", "gbk"); }

解决Qt中文乱码以及汉字编码的问题(UTF-8/GBK)——ubuntu环境设置默认是utf-8,文件编码可使用Encodersoft批量转换

一.Qt环境设置 文件从window上传到Ubuntu后会显示乱码,原因是因为ubuntu环境设置默认是utf-8,Windows默认都是GBK.Windows环境下,Qt Creator,菜单->工具->选项->文本编辑器->行为->文件编码:默认编码:System(简体中文windows系统默认指的是GBK编码,即下拉框选项里的GBK/windows-936-2000/CP936/MS936/windows-936) 二.编码知识科普Qt常见的两种编码是:UTF-8和GB

一个 -100.01 的double 在内存中怎么存储的. 一个中文String 在内存中占多少直接 utf-8 / GBK

一.-100.01 的double 在内存中怎么存储的 double双精度数据类型存储格式IEEE 双精度格式为8字节64位,由三个字段组成:52 位小数 f : 11 位偏置指数 e :以及 1 位符号 s.这些字段连续存储在两个 32 位字中 二.一个中文String 在内存中占多少直接 utf-8 / GBK [腾讯实习生问到这个问题,当时还天真的回答unicode字符集和16位,哎...] GBK:1个ASCII码占1个字节,而1个汉字编码占2个字节. UTF:ASCII对应的字符在UT

UTF-8 GBK UTF8 GB2312之间的区别和关系

UTF-8 GBK UTF8 GB2312之间的区别和关系 UTF-8:Unicode TransformationFormat-8bit,允许含BOM,但通常不含BOM.是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节),中文使用24为(三个字节)来编码.UTF-8包含全世界所有国家需要用到的字符,是国际编码,通用性强.UTF-8编码的文字可以在各国支持UTF8字符集的浏览器上显示.如,如果是UTF8编码,则在外国人的英文IE上也能显示中文,他们无需下载IE的中文语言支持包.

字符截取 支持UTF8/GBK

/** * 字符截取 支持UTF8/GBK * @param $string * @param $length * @param $dot */function str_cut($string, $length, $dot = '...') {    $strlen = strlen($string);    if($strlen <= $length) return $string;    $string = str_replace(array(' ',' ', '&', '"'

Golang十六进制字符串和byte数组互转

Golang十六进制字符串和byte数组互转 需求 Golang十六进制字符串和byte数组互相转换,使用"encoding/hex"包 实现Demo package main import ( "encoding/hex" "fmt" ) func main() { str := "ff68b4ff" b, _ := hex.DecodeString(str) encodedStr := hex.EncodeToString

字符串转码中文乱码问题的进一步理解 UTF-8 GBK转码

众所周知,字符编码很多  像UTF-8.GBK.GB2312.ISO8859-1等等  其中GBK是兼容GB2312的 重点是UTF-8编码下的中文占3个字节,GBK.GB2312编码下的中文占2个字节,当我们把一个字符串解析为UTF-8的字节时, 如果进行了业务处理,再转为GBK那么很容易就出现了乱码,很显然两种编码中文字节占用位数都不一样, 网上很多人说GBK转UTF-8的方法如下: //以下代码是错误的 String str="双节棍爱好友h为太原"; byte[]tem=str

位/字节/ASCII/UTF-8/GBK/GB2312/Unicode 扫盲

1个字节(Byte)=8位 bit  1位就是计算机中的 1 或0 比如10进制1 ,ASCII码是49,二机制是: 00110001 它占用一个字节. ASCII码:一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间.一个二进制数字序列,在计算机中作为一个数字单元,一般为8位二进制数,换算为十进制.最小值0,最大值255.如一个ASCII码就是一个字节. UTF-8编码:一个英文字符等于一个字节,一个中文(含繁体)等于三个字节. Unicode编码:Unicode是一种编

UTF-8 GBK GB2312 之间的区别和关系

UTF-8:Unicode TransformationFormat-8bit,允许含BOM,但通常不含BOM.是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节),中文使用24为(三个字节)来编码.UTF-8包含全世界所有国家需要用到的字符,是国际编码,通用性强.UTF-8编码的文字可以在各国支持UTF8字符集的浏览器上显示.如,如果是UTF8编码,则在外国人的英文IE上也能显示中文,他们无需下载IE的中文语言支持包.GBK是国家标准GB2312基础上扩容后兼容GB2312的标