PHP文件及数据编码转换解决乱码问题
ThinkPHP创建网站时使用UTF8编码,包括数据库操作默认情况下也使用与文件系统相同的编码。但有些第三方应用,使用的并非UTF8编码,如果在当前应用中调用,将会出现异常,例如乱码、解释错误等。事实上PHP已经内置了iconv函数用于处理字符编码,但只能处理字符串。ThinkPHP内置了CodeSwich类库,能够方便地对PHP及HTML文件进行转码,支持批量转码。转码后开发人员就可以方便地调用不同编码的类库及函数。 1、DetectAndSwitch方法 DetectAndSwitch方法可以方便地对单个PHP、HTML、JS等文件进行编码转换,DetectAndSwitch方法形式如下。 static function DetectAndSwitch($filename,$out_charset) 其中参数filename表示需要转码的有效文件;参数out_charset表示转码后的编码,接受的输出编码与iconv函数一样。如以下代码所示。 需要注意的是转码后原文件将会被替换,这就意味着在Linux系统下,Web服务器对该文件必须具备可读可写权限。 2、CodingSwitch方法 很多第三方类库都不是由单个文件构成的,而是由一系列的类库构成的。CodingSwitch方法可以实现对整个目录下的PHP或者HTML等文件进行编码转换,函数形式如下: static function CodingSwitch($app = "./",$charset='UTF-8',$mode = "FILES",$file_types = array(".html",".php")) 其中参数app表示目录路径;参数charset表示文件转换的目标编码;参数mode表示目录遍历模式PHP文件,保持默认即可;参数file_types表示文件匹配后缀名,只有匹配的文件才进行转码。CodingSwitch方法的使用非常简单,如下代码所示。 (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |