php

位置:IT落伍者 >> php >> 浏览文章

关于PHP自动判断字符集并转码的详解


发布日期:2022年12月14日
 
关于PHP自动判断字符集并转码的详解

原理很简单因为gb/gbk是中文两字节这两个字节是有取值范围的而utf中汉字是三字节同样每个字节也有取值范围而英文不 管在何种编码情况下都是小于只占用一个字节(全角除外)
如果是文件形式的编码检查还可以直接check utf的BOM信息话不多说直接上函数这个函数是用来对字符串进行检查和转码的

复制代码 代码如下:


<?php
function safeEncoding($string$outEncoding =UTF)
{
$encoding = "UTF";
for($i=;$i<strlen($string);$i++)
{
if(ord($string{$i})<)
continue;

if((ord($string{$i})&)==)
{
//第一个字节判断通过
$char = $string{++$i};
if((ord($char)&)==)
{
//第二个字节判断通过
$char = $string{++$i};
if((ord($char)&)==)
{
$encoding = "UTF";
break;
}
}
}

if((ord($string{$i})&)==)
{
//第一个字节判断通过
$char = $string{++$i};
if((ord($char)&)==)
{
// 第二个字节判断通过
$encoding = "GB";
break;
}
}
}

if(strtoupper($encoding) == strtoupper($outEncoding))
return $string;
else
return iconv($encoding$outEncoding$string);
}

?>

上一篇:新浪微博API开发简介之PHP基础篇-用户授权

下一篇:php给上传图片加图片水印