大家好,今天给各位分享php获取网站源码分享乱码的一些知识,其中也会对php网站源码进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!
字符集utf-8gb2312gbk在所有程序中不区分大小写,推荐小写
<metahttp-equiv=&34;content=&34;/>
通过iconv函数实现编码转换
iconv(stringin_charset,stringout_charset,stringstr)
如:iconv(&34;,&34;,$text);
注意:如果网页编码与参数out_charset相同,就没必要用iconv()函数,否则就会出现不可预知的错误(如中文汉字转不出来)
如:imagettftext()函数只支持utf-8字符集
header(&34;);
连接数据库:mysql_query(&34;)
<?php
$conn=mysql_connect(&34;,&34;,&34;)ordir(&34;.mysql_error());//连接数据库服务器
mysql_select_db(&34;,$conn)ordie(&34;.mysql_error());//连接db_database18
mysql_query(&34;);//设置数据库编码格式
?>
避免截取中文字符串时出现乱码
stringmb_substr(stringstr,intstart[,intlength[,stringencoding]])
设置数据库默认字符集和校对方式:
CREATETABLE[IFNOTEXISTS]表名称type=myisamdefaultcharactersetgbkcollategbk_chinese_ci;
CREATETABLE[IFNOTEXISTS]表名称type=myisamdefaultcharactersetutf8collateutf8_general_ci;
处理中文字符
对于以上的字符串函数,有些可以用于中文,但有些却不适用中文。
所以,PHP提供了专门的函数来解决这样的问题。
中文字符集可以是gbk,utf8,gb2312
mb_strlen()对应的函数为strlen()求字符串的长度
mb_strstr()对应的函数为strstr()求某字符串到结尾的字符
mb_strpos()对应的函数为strpos()求出字符最先出现处
mb_substr()对应的函数为substr()取出指定的字符串
mb_substr_count()对应函数为substr_str()返回字符串出现的次数
iconv_strlen()对应的函数为strlen()求字符串的长度
iconv_strpos()对应的函数为strpos()求出字符最先出现处
iconv_substr()对应的函数为substr()求某字符串到结尾的字符
iconv_strrpos()对于的函数为substr()查找字符串在一个字符串中最后出现的位置
详细可参考手册国际化与字符编码支持|多字节字符串
国际化与字符编码支持|iconv
实例:
<?php
setlocale(LC_ALL,&39;);//设置为美式英语
echostrftime(&34;,time());//输出当前时间
echo&34;;
setlocale(LC_ALL,&39;);//设置为中文
$dates=strftime(&34;,time());//输出当前时间
echoiconv(&34;,&34;,$dates);//输出经过编码格式转换后的中文时间
?>
注意:
内容编码(页面声明的字符集)与文件编码(文件本身的字符集)要求一致,否则会出现乱码;
记事本的默认字符集为:ANSI,为了避免不必要的错误,尽量避免用记事本新建文件;
window记事本编辑器如果保存为utf-8文件就会帮你加上BOM头;在utf-8编码文件中BOM在文件头部,占用三个字节,用来标示该文件属于utf-8编码,
现在已经有很多软件识别BOM头,但是还有些软件不能识别BOM头,比如PHP就不能识别BOM头,这也是用记事本编辑utf-8编码后执行就会出错的原因了。
如要清除文件BOM头
请见PHP|实例|文件|自动去除文件BOM代码
推荐文本编辑器:NotePad++
phpDesigner8软件中如果有php文件中有Bom头,则有&34;选项,将其选项去掉,则去掉了BOM头信息
下面以utf-8为例,说明如何统一编码.
1.将网页文件的编码保存为utf-8无BOM
记事本,保存文件的时候选择&34;为utf-8
editPlus,保存时选择&34;为utf-8
Notepadd++,按ctrl+A全选当前文档,选择菜单栏的Encoding–>ConverttoUTF-8withoutBOM
UEStudio,保存时选择&34;为utf-8无BOM其他软件请根据情况操作
2.在PHP页面的<?php?>标签对之间使用header(&39;);声明页面编码为utf-8
在html头部(<head>和</head>之间)写入<metahttp-equiv=&34;content=&34;/>来声明页面编码为utf-8
3.PHP页面中连接数据库服务器后执行sql查询前使用以下代码先将字符集设置为utf-8
以下方案任选一种,其中$myqli和$pdo是创建的mysqli和pdo类的对象实例
mysql_query(&39;);//mysql扩展
mysqli_query(&39;);//mysqli扩展
$mysqli->query(&39;);//mysqli扩展
$pdo->exec(&39;);//PDO扩展
4.创建数据表的时候将默认编码设置为utf8,将字符校对(callate)设置为utf8_general_ci,注意MySQL里面是utf8而不是utf-8
IFNOTEXISTS`name`(
….代码….
)ENGINEInnoDBDEFAULTCHARSETutf8COLLATEutf8_general_ci;
做到这四点,相信你的网页和数据库不会再乱码.
关于php获取网站源码分享乱码的内容到此结束,希望对大家有所帮助。
