loading请求处理中...

教程帖:php外包开发的过程中出现中文乱码应该要如何去处理?

2021-12-01 18:11:00 阅读 10883次 标签: 外包开发 作者: danielsu

 php虽然是一种相对简单的语言,但是在实际的开发过程中难免会碰到一些问题,这种情况在php外包开发中也是时有发生的。中文乱码可以说是一个php开发中经常会出现的问题,对于很多的新人来说可能会比较手足无措,因为我们今天就来看一下如果在php开发中出现中文乱码的话应该要如何处理吧。

教程帖:php外包开发的过程中出现中文乱码应该要如何去处理?

 PHP中文乱码是软件编程新手在进行PHP开发中的常见问题之一,中文乱码现像有时发生在网页本身,有些产生在于MYSQL交互的过程中,有时与操作系统有关,下面进行总结:

 这种情况在php外包开发中最好最快的解决办法就是使页面申明的编码与数据库内部编码一致,如果页面申请的编码与数据库内部的编码不一致时,那就设定连接编码。Mysql_query(“setnames gb2312”) 或者 Mysql_query(“setnames utf8”)。

 1、 php文件本身的编码与网页的编码应匹配,如果欲使用gb2312编码,那么php要输出头

 header(“Content-type:text/html;charset=gb2312”)。静态页面添加,所有文件的编码格式为ANSI,可用记事本打开,另存为选择编码为ANSI,覆盖源文件。

 2、 如果欲使用uft-8编码,那么php要输出头header(“Content-type:text/html; charset=utf-8”),静态页面添加,所有文件的编码格式为utf-8.保存为utf-8可能会有点麻烦,一般utf-8开头会有BOM,如果使用 Session就会出现问题,可用editplus软件来保存。在这个软件中,选择工具?参数选择?文件?UTF-8签名,选择总是删除,再保存就可以去掉BOM信息了。

 3、PHP本身不是Unicode的,所有substr之类的函数得改成mb_substr(需要装mbstring扩展);或者用iconv转码。在需要做数据库操作的PHP程序前加mysql_query(“set names 编码”),编码和PHP编码一致,如果PHP编码是gb2312那么mysql编码也就是gb2312,如果是uft-8,那么mysql中就是utf8.这样改过后就不会出现乱码了。

 4、header和meta之间区别。首先,header是php的内置函数,而meta是html的信息。其次,apache在给浏览传递网页编码内容时,如果发现php文件使用header设置网页显示编码则将不会再解析meta设置的编码。最后,如果你写的代码是这样,php文件header(“Content-type:text/html; charset=gbk2312”),静态页面添加,浏览会默认显示为gbk2312而不是utf-8。这些规则是apache和php之间的协议。

 通过上面的办法应该基本可以解决php开发中所出现的中文乱码的问题,小编希望这样的分享无论是对于php开发本身或者是php外包开发都能够带来帮助和启发。一品威客网作为一个国内知名的老牌威客平台,能够提供php开发的各项服务,如果有需要php外包开发的话可以和我们的服务商取得联系。

Tag: PHP

公司推荐

成为一品威客服务商,百万订单等您来有奖注册中

留言( 展开评论