作者cyclone350 (老子我最神)
看板java
标题[工具] 1个byte的影响
时间Fri Dec 18 20:34:34 2015
是这样的,昨天开发的程式出现了一个 bug
在 local 端手动测试功能完全正常
但是在 staging 环境手动测试与我自己写的整合测试结果都是不正常的 (fail)
结果我 debug 一整天
查了相关文件,看了教学 blog,查询 Stack Overflow
仍没有任何收获
最後查到原因了
程式码的有一行看起来像这样
this.xbox = "todayIsFriday";
我印出 xbox 的 log 也是 "todayIsFriday"
但实际上 I 与 s 之间似乎夹杂了一个杂讯 (也许是一个byte)
也就是说,如果你把指标移到 I 跟 s 中间,并且按下 ←,这个杂讯就会被消除,
程式就可以正常运作了
会发现这个原因是因为我刚好复制了这个字串
然後又让 System.out.print 去印出来,才看到乱码并发现这件事
(就算用 log 间接印出在 console 仍看不出乱码)
请问这种 case 有办法用工具检查出来吗?
还是各位有甚麽撇步可以快速找到乱码?
还是,这是电脑问题? (我电脑曾经突然重开机让後编辑中的档案整个死掉)
该换电脑了吗? 我早就想换了。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 123.193.192.133
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/java/M.1450442076.A.235.html
1F:→ qrtt1: 版本控制工具的 diff 没有显示出来? 12/18 21:15
2F:→ cyclone350: diff 没试过耶,这是我本机刚新开发的功能。 12/18 21:29
3F:→ cyclone350: 晚点去看看 12/18 21:30
我用的版控工具是 SourceTree, diff 档案看不出来
然後有件事情我说错了
刚刚仔细测试後发现
System.out.print 也看不出来,是用 URI Encoding 才看得出来
因为用的 lib 要在系统显示出完整内容是直接用 print(),
所以误以为没处理就直接 print
以下是程式码
http://i.imgur.com/PyionkB.jpg
程式结果
http://i.imgur.com/qVHzfGd.jpg
另外
记事本 看不出来
notepad++ 看不出来
sourceTree diff 看不出来
gmail 信件 看不出来
eclipse 看不出来
STS 看不出来
刚刚发现,贴到 PTT 就看得出来了,s会被吃掉
※ 编辑: cyclone350 (123.193.192.133), 12/18/2015 23:07:06
4F:推 LaPass: 你用charAt然後转成int一个一个字元印出来看看,我猜是非 12/18 23:35
5F:→ LaPass: 显示字元 12/18 23:35
6F:→ ssccg: EFBBBF,不就UTF-8的BOM 12/19 00:03
7F:→ fgh81113: 有点妙 你怎麽生出那个s的 12/19 13:34
8F:推 MephistoH: 这个我有遇过...不过我那个是换行符号..情形类似 12/21 13:31
9F:推 gmoz: VT100 ? 12/21 16:23
10F:→ cyclone350: 这个东西是甚麽我并不在意,可能是 ssccg 说的 BOM 12/23 22:02
11F:→ cyclone350: 也许是复制贴上时贴到的,但是我总不能跟大家说: 12/23 22:03
12F:→ cyclone350: [嘿,请大家在写程式时随时按左右来检查有没有奇怪字 12/23 22:04
13F:→ cyclone350: 元喔~ ] 12/23 22:05
14F:推 now99: 转hex字串检查 12/26 09:48
15F:→ FantasyRyu: 贴到PTT检查是哪招 XDDDDD 厉害 12/27 10:02