编码转换工具 - base_charset

功能描述

用于做编码转换.

应用场景

系统默认的文件编码与数据库编码为utf-8, 在多实际进行数据导出的为了兼容windows数据会采用gb2312. 因此需要进行编码. 为了兼容php的早期版本, 默认的处理方式性能上有一定的, 可根据需要进行扩展, 详情见下文

使用指南

<?php
...
$this->charset kernel::single('base_charset');
...

函数接口

local2utf

gb2312转utf8

参数:
    string $strForm 待处理字符串
返回:
    mixed 待处理的字符串或者false

utf2local

gb2312转utf8

参数:
    string $strForm 待处理字符串
返回:
    mixed 待处理的字符串或者false

u2utf8

unicode转utf8

参数:
    string $str 待处理字符串
返回:
    mixed 待处理的字符串或者false

utf82u

utf8转unicode

参数:
    string $str 待处理字符串
返回:
    mixed 待处理的字符串或者false

replace_utf8bom

去掉utf8bom头

参数:
    string $str 待处理字符串
返回:
    mixed 待处理的字符串或者false

is_utf8

判断是否是utf-8字符集

参数:
    string $word 待处理字符串
返回:
    mixed 待处理的字符串或者false

扩展

本类的实现类似于设计模式当中的proxy模式, 本类所提供的所有函数实际上都是调用由service提供的,service_box: base_charset, 需要implements接口类base_charset_interface

<?php
interface base_charset_interface{
    public function 
local2utf($strFrom,$charset='zh'); //gb2312转utf8
    
public function utf2local($strFrom,$charset='zh'); //utf8转gb2312
    
public function u2utf8($str); //unicode 转 utf8
    
public function utf82u($str); //utf8 转 unicode
    
public function replace_utf8bom($str); //去掉utf8bom头
    
public function is_utf8($word); //判断是否utf-8
}

查看一下默认的编码转换类

./cmd dev:show services | grep -i base_charset
base_charset                                            base_charset_default

默认提供服务的是base_charset_default. 为了兼容php老版本, 没用到php系统级函数, 而是采用了相对低效和保守的方案.

如果你更关注性能, 可以自己实现并注册到service_box: base_charset, 可以直接调用系统级的函数来实现, 实现起来比较简单

补充知识: 编码转化函数

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)

內容目录

上一个主题

系统演示数据初始化类 - base_demo

下一个主题

简易爬虫 - base_pget

快速搜索

输入相关的模块,术语,类或者函数名称进行搜索