2013年3月28日 星期四

無瑕的程式碼-敏捷軟體開發技巧守則 (Clean Code: A Handbook of Agile Software Craftsmanship)


最近發現Clean Code總算出中文翻譯書了,去書局翻了一下內容發現翻譯品質還不錯。害怕原文書的朋友們可以考慮買這本翻譯書。前陣子也看到O'reilly最近要出The Art of Readable Code的中文翻譯本,這本書和Clean Code主題類似,有興趣的人可以注意一下出版的消息。

很高興看到有越來越多好書被翻譯成中文,也希望未來能夠有更多經典書能被翻譯成中文讓更多人閱讀。

原文板的讀書心得和筆記如下:

心得 : Clean Code

筆記 :

寫入資料到txt檔,用Notepad打開顯示亂碼

今天碰到一個奇怪的問題,我有一個程式會產生一個.txt檔。內容為上千個0~255的數字由空白隔開。寫檔成功後在Windows XP底下用Notepad打開發現顯示為亂碼,但是用Notepad++以及Wordpad打開都可正常顯示。很明顯這是編碼的問題,不過為什麼會這樣讓我找了一陣子。最後發現是Notepad的問題。

Windows XP的Notepad有Unicode Detection的功能,Notepad使用一個Windows API叫IsTextUnicode()來偵測目前文字檔是不是Unicode編碼。但是這個API並沒辦法完美的辨認出Unicode,有時後會把ASCII text誤認為是Unicode編碼。比如說這段字串"aaaa aaa aaa aaaaa",如果你把他貼在Notepad上存起來再重新打開,你會發現他變成一團亂碼。原因就在於IsTextUnicode()把全部都是此ASCII text誤認為UTF-16。除了此case以外還有很多其他的case會造成誤判。而Wordpad以及Notepad++不會有此誤判的現象,因此可正常顯示。