纸飞机
我要看清晰的
我猜应该是这个问题
PHP strtolower() 乱码问题
strtolower()函数里面的参数的值如果是中文,例如strtolower("测试"),返回的结果会变成乱码...
然后就google了一下,没有找到问题所在,却发现大家都极力不建议使用strtolower()这个函数...
于是偶竭尽全力查找问题,系统是debian linux平台,很快投诉方提供了一台不会乱码的机器,于是偶开始对比两台机器的不同...两台机器是同一批机器,系统都是同一时间安装的...
apache的配置文件,php的配置文件完全一样...一个头顿时变成两个大...
最后发现 在phpinfo()的Environment这一节里面,不产生乱码的只有两个环境变量:LANG,PATH;可是产生乱码的那台机器就多了去了,而且LANG=US_en,连启动apache的时候从那个ip登录进来的都可以看到...感觉问题出在了apache上,差不多排出了php的问题。
然后查看apache的配置文件...用env命令查看环境变量...用 /etc/init.d/apache restart 重起了一下,突然发现系统不再产生乱码了。奇怪啊?
查了半天没有找到问题,然后只好去正常的那台机器上 apachectl restart 一下,很快就有人问为啥那台正常的也开始乱码了?
立即开始思考刚才在正常的那台机器上做了什么?好像就是重起了一下apache...不过...我真的要佩服自己一下,我的手指完全不受控制的敲了history,让我发现重起apache的时候采用了不同的命令!
/etc/init.d/apache restart
apachectl restart
立即使用 /etc/init.d/apache restart 重起apache,乱码症状消失,问题的一解决
用vi打开 /etc/init.d/apache 发现原来启动Apache是这样的:
env -i LANG=C PATH=/bin:/usr/bin:/usr/local/bin apachectl start
如果你的apache安装在/usr/local/apache_1.3.34/bin 下,就要用:
env -i LANG=C PATH=/bin:/usr/bin:/usr/local/bin:/usr/local/apache_1.3.34/bin apachectl start- 纸飞机 回复了话题 Yii Framework视频教程第三讲(上)
继续支持老大
谢谢老大~