php字符编码问题

php字符编码问题

一、编码转换

1、通过iconv()函数实现编码转换

语法:iconv(string in_charset,string out_charset,string str)

将指定字符串str由in_charset编码格式转换成out_charset编码格式,返回bool值。

2、通过mb_convert_encoding()函数实现编码转换

语法:mb_convert_encoding(string str,string to_encoding[,mixed from_encoding])

将字符串str的编码由from_encoding转换为to_encoding。

二、检测字符串的编码

通过mb_detect_encoding()函数来检测字符串使用的是何种字符编码。

三、字符编码优先级

由高--->低

1、http消息报头的Content-Type字段中的charset参数。

2、通过meta元素声明,将http-equiv设置成Content-Type。

3、一些元素的charset属性设置。

四、解决页面中的乱码问题

数据库中数据的输入和输出产生的乱码,可以通过PHP的mysql_query()函数设置来解决,而页面中如果出现乱码,则可以使用下面的两种方法解决。

1、使用meta标签设置页面编码

<meta http-equiv="content-type" content="text/html;charset=gb2312">

meta标签的作用是声明客户端的浏览器用什么字符编码显示该页面。

2、通过header()函数设置页面的编码格式

header("content-type;text/html;charset=gb2312");

header()函数的作用是把括号内的信息发到HTTP标头。