PHP 中的神奇空格.ヾ(。`Д´。)竟然这么坑爹.

2015-01-19 15:20:54 +08:00
 lvfujun
空格开始   空格结束
请大家复制上面两段文字中间的空格到你的PHP代码中包准报错.
求大牛分析一下.是不是编码的问题.
????????????????????
4082 次点击
所在节点    PHP
21 条回复
wowo2088
2015-01-19 15:27:25 +08:00
你那不是空格,是161(A1)号字符
wowo2088
2015-01-19 15:30:11 +08:00
wadezhao
2015-01-19 15:47:00 +08:00
您这三个“空格”放在什么代码中不出错?
764664
2015-01-19 16:14:34 +08:00
xoxo
2015-01-19 16:26:56 +08:00
这不是PHP的问题
而是你这个字符, 是全角字符(全角空格也是全角字符),PHP不认识这尼玛是不是空格,全角字符没有PHP对应的标记来执行,所以就报错了
mingzepeng
2015-01-19 16:38:37 +08:00
报错时候你也不看一下报错内容么。。。。。
bjzhush
2015-01-19 16:55:44 +08:00
我这没报错
msxcms
2015-01-19 16:56:27 +08:00
这跟PHP毛线关系?
ksc010
2015-01-19 17:02:00 +08:00
'{';
上面尖括号前面有个不可见字符 (可以复制到编辑器里面,然后左右移动光标就能“感觉”到),原来遇到的一个坑
现在这个特殊的字符我保存在网盘里面了
littleshy
2015-01-19 17:08:25 +08:00
全角的啊!
littleshy
2015-01-19 17:09:24 +08:00
所以开发时建议显示全部字符啊,是不是空格一眼就看出来了。
yuankui
2015-01-19 17:10:59 +08:00
这是非可见字符吧。。
lvfujun
2015-01-19 17:29:12 +08:00
坑爹的字符以后开发得小心.
@wowo2088
@yuankui
@littleshy
@littleshy
@ksc010
@msxcms
@bjzhush
@mingzepeng
@xoxo
@764664
@wadezhao
@wowo2088
ooh
2015-01-19 17:30:08 +08:00
忽然想起了稻草人
lvfujun
2015-01-19 17:34:28 +08:00
@xoxo 大牛说对了.
skyline75489
2015-01-19 17:36:55 +08:00
碰到过类似的,30号ASCII字符, RS (record separator),这个东西真是奇葩,在IE6上能显示出空白来,但是在现代浏览器上就消失了。。。
bombless
2015-01-19 19:48:12 +08:00
跟 PHP 有毛线关系……你把它丢 C++ 源码里面照样编译不过……
hrdslin
2015-01-20 00:26:39 +08:00
php是世界上最好的语言,没有之一
reeco
2015-01-20 00:58:49 +08:00
想起以前调试了半天的bug,就是全角空格引起的????
curiousjude
2015-01-20 08:49:24 +08:00
IDE不是都会标记出来吗?至少PHPStorm会。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/163485

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX