本文目录一览:
php有没有查看当前的编码方式的方法
编码问题是解码者决定的,数据本身并不指明编码方式,而是读数据的解码者选择自己的解码方式
此处,php程序是数据本身,php解释器是解码者本身,
php解释器对 php程序的编码方式 并不应人类对php程序的编码方式理解不同而转移
因此,理论上不存在获取当前数据编码方式的 接口,只要当时的编码者(譬如人类)显示指明编码方式,
解码者(譬如php解释器)方可获知
即使在解析以后再人类看来是一片乱码, PHP认为一切都是正确的.
当然从前端获取来的字符例外
如果不清楚字符串的编码格式的话,就可以将这段字符这样检查:
$encode = mb_detect_encoding($string, array("ASCII",'UTF-8′,"GB2312′,"GBK",'BIG5′));
echo $encode;
这样就能知道它是什么编码的了。后续操作还可以为其转码:
if ($encode == “UTF-8″){
$string = iconv("UTF-8″,"GBK",$string);
}
php 怎样判断字符串是哪种编码
php中有个函数可以用来检查当前字符串的编码类型
mb_detect_encoding($str,array('ASSCII',''GB2312','UTF-8));
PHP用MBString库的函数
$e=mb_detect_encoding($text, array('UTF-8', 'GBK'));
switch($e){
case 'UTF-8' : //如果是utf8编码
break;
case ‘GBK’: //如果是gbk编码
break
}
用PHP如何判断一个文件的编码
文件a.txt,用PHP如何判断它的编码是GBK还是UTF-8呢?
1,重新认识一下此问题,当时版主回复的时候我就觉得mb函数里一定有这样的功能,但今日研究了mb库,并没有这样的功能。用mb_detect_encoding总是不准确。
echo mb_detect_encoding(file_get_contents('a.txt'));
2,我在PHP的在线文档中找了一个方法,可以解决你的问题,需要自己编写一个函数来实现。
具体代码如下:
function isUTF8($str)
{
if ($str === mb_convert_encoding(mb_convert_encoding($str, "UTF-32", "UTF-8"), "UTF-8", "UTF-32"))
{
return true;
}
else
{
return false;
}
}
$content = file_get_contents("a.txt");
echo isUTF8($content);
3,经测试,在编码种类不多的情况下,2方法成功率还是挺高的。
function ChickC($str)
{
$array = array('ASCII','GBK','UTF-8');
foreach ($array as $value)
{
if ($str === mb_convert_encoding(mb_convert_encoding($str, "UTF-32", $value), $value, "UTF-32"))
return $value;
}
return false;
}