PHP编码问题
老声长谈,着是困惑很多人的问题,如果处理不好,都是乱码,说这些话并不是我对编码很精通,只是在这方面是得留神,自己总结了一点小经验(容易出现乱码的地方有php文件里面,数据库里面,页面显示):
1.在于数据打交道的时候mysql_query("set names 'utf-8'");
2.在建数据库的时候,尤其是用phpMyAdmin与MYSQL打交道时候,一般都是utf-8
3.PHP的文件默认的编码是ANSI,需要转换为UTF-8,至于怎么转换editplus就有这样的功能,“另存为”的时候有选择编码,还有有的人在eclipse里面开发,eclipse里面默认的是ISO-8859-1,需要在“窗口”->“首选项”打开“首选项”窗口,在左侧“常规”->“工作空间”,在“文本文件编码”里面设置默认的编码
4.就是PHP文件里面要说明:如<meta http-equiv="Content-Type" Content="text/html;charset=utf-8">
//编码转换
function display_fileencoding($filename)
{
if(extension_loaded("mbsting"))
{
$code=mb_detect_encoding($filename);//检测字符串编码
$filename=mb_convert_encoding($filename,"UTF-8",$code);//将编码$code转换为utf-8编码
return $filename;
}
else
die("请检查系统是否正确安装配置mbstring");
}
要确保mbstring在你的php.ini中启用
6.还有就是处理中文等双字节的时候也有可能出现乱码,PHP里面可以采用的有iconv,mb_convert_encoding来处理双字节,其余的可以参考PHP帮助手册
7.保证以上几处编码一致就可以了!!如有不对的,请留言指出!!
5.在补充一点(遗漏的一点),在你的程序里面你要知道数据之间的传递也有可能存在编码问题的,但是你有不知道传递过来的数据是采用的什么编码,在PHP里面提供了方法来处理的,下面是自己写的一个简单方法,可以参考一下
相关文档:
AddSlashes: 字符串加入斜线。
bin2hex: 二进位转成十六进位。
Chop: 去除连续空白。
Chr: 返回序数值的字符。
chunk_split: 将字符串分成小段。
convert_cyr_string: 转换古斯拉夫字符串成其它字符串。
crypt: 将字符串用 DES 编码加密。
echo: 输出字符串。
explode: 切开字符串。
flush: 清出输出缓 ......
运行环境:windows xp sp2
IIS v5.1
PHP 5.3.1-Win32-VC9-x86
Mysql 5.0
安装步骤:
安装IIS5.1
在 ......
<html>
<head>
<title>计算本周开始结束日期</title>
</head>
<body>
<form method="post" action="./index.html" enctype="utf-8">
<table>
<tr><td>输入年份</td><td><input name="year" type="text" maxlength="4" /></td> ......
我的gentoo系统flash无法显示中文字体,而且无法睡眠和待机,有功夫再研究一下如何解决吧
因为要开发一个富文本过滤的php扩展,因此研究了一下php扩展的开发技术。
php.net上的文档写的不全。还要到处找。
关于富文本过滤,就是说给一段混杂了html,js,css的文本,过滤出安全的部分,因此要做html,css解析,黑白名单设计 ......
编者按:学习php是一种枯燥无味,整天和代码打交道的过程,不过相信这篇文章会给你一点启示帮助。
如何学习PHP/学习php的方法,学东西,永远不要妄想有速成这一说,告诉你了一个方式,但是缺少努力这一环节,那也是白搭。 掌握好的学习方法非常必要,看看这篇如何学习PHP/学习php的方法[转载]
相信大家选择一种语言,并不是 ......