① php中当前文件为GBK或GB2312编码,怎么用正则表达式取汉字
if (ereg('/[\u4E00-\u9FA5]/',$str)){
$chn = str_replace('/[^\u4E00-\u9FA5]/','', $str);
}
判断是否有中文,$chn=过去非中文字符
② PHP文件加了header("content-type="text/html",charset="utf-8")还是为乱码,怎么回事
防止php输出出现乱码,需要确保数据库编码,输出header编码,文件编码都一样。具体可以从以下几点入手,1.检查文件编码2.检查插入数据库的数据是否乱码,3.检查数据库编码,4.从数据库读取出来的数据是否乱码,5.检查输出的数据是否乱码。
③ 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 euc-cn什么编码
php中用mb_detect_encoding测出来的euc-cn是gb2312编码:
EUC-CN是GB2312最常用的表示方法。浏览器编码表上的“GB2312”扮激,通常都是指“EUC-CN”表示茄缺罩法。颤闹