看板 java 關於我們 聯絡資訊
是這樣的,昨天開發的程式出現了一個 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://www.ptt.cc/bbs/java/M.1450442076.A.235.html
qrtt1: 版本控制工具的 diff 沒有顯示出來? 12/18 21:15
cyclone350: diff 沒試過耶,這是我本機剛新開發的功能。 12/18 21:29
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
LaPass: 你用charAt然後轉成int一個一個字元印出來看看,我猜是非 12/18 23:35
LaPass: 顯示字元 12/18 23:35
ssccg: EFBBBF,不就UTF-8的BOM 12/19 00:03
fgh81113: 有點妙 你怎麼生出那個s的 12/19 13:34
MephistoH: 這個我有遇過...不過我那個是換行符號..情形類似 12/21 13:31
gmoz: VT100 ? 12/21 16:23
cyclone350: 這個東西是甚麼我並不在意,可能是 ssccg 說的 BOM 12/23 22:02
cyclone350: 也許是複製貼上時貼到的,但是我總不能跟大家說: 12/23 22:03
cyclone350: [嘿,請大家在寫程式時隨時按左右來檢查有沒有奇怪字 12/23 22:04
cyclone350: 元喔~ ] 12/23 22:05
now99: 轉hex字串檢查 12/26 09:48
FantasyRyu: 貼到PTT檢查是哪招 XDDDDD 厲害 12/27 10:02