最近在win的cmd下用 php 的 cli 调试程序总是出来乱码;
研究一番才知道原来是 cmd 只支持 gbk 的显示,如果 cli 吐出来的数据是 utf-8 编码的就出乱乱码,最后使用 mb_convert_encoding 转码,
在吐出来之前进行一次转码就可以了;
研究过程中看到一函数,貌似精确度不能达到 100% 不过也不失为解决问题的一程序办法;
function is_utf8($word){ if (preg_match(/^([.chr(228).-.chr(233).]{1}[.chr(128).-.chr(191).]{1}[.chr(128).-.chr(191).]{1}){1}/,$word) == true || preg_match(/([.chr(228).-.chr(233).]{1}[.chr(128).-.chr(191).]{1}[.chr(128).-.chr(191).]{1}){1}$/,$word) == true || preg_match(/([.chr(228).-.chr(233).]{1}[.chr(128).-.chr(191).]{1}[.chr(128).-.chr(191).]{1}){2,}/,$word) == true) { return true; } else { return false; }}
原文地址:php 判断编码, 感谢原作者分享。
