- 轉換Unicode字符串到指定的代碼頁,只有德爾福:比以前更簡單。感謝String類能夠創建一個所需的代碼頁的字符串,並從一個代碼頁乾淨地轉換到另一個。
- FillChar是字節,而不是字符,名稱現在是不幸的。這並不令人困惑。
- 這個警告讓你思考,它做了什麼。任務完成。
- 哦,是的。但重新測試和重新閱讀對我來說是最大的好處。
我已經遷移我的所有項目,德爾福2009/2010,發現的好處包括:
A.我的代碼進行徹底的重新閱讀帶來了,我需要把它清理乾淨(因爲它是一個很多方面臃腫的大量事故和增量代碼污泥,就像大多數RAD/delphi項目一樣),其中很少是純粹的unicode或端口相關的,但所有這些都使得產品更好地適應變化。 B.更清潔的世界,第三方組件更少。刪除TNT,以及一兩個第三方組件將使您的項目更小,更正交,更易於支持。
C.沒有理由將其移植到其中。我的項目中沒有一個港口實際上被永久移動到德爾福2009/2010。他們都在兩個世界建立得很好。我在任何需要它的地方廣泛使用UnicodeString類型,並且在Delphi 2007或更早版本上進行編譯時,我會對WideString進行typedef。
D. delphi2010 IDE在Windows Vista和Windows 7上運行良好,並且該語言非常適合使用。德爾福2009年和2010年不會崩潰,德爾福2007年和德爾福7經常爲我做。
如果你不需要支持Vista和Win7,並且你100%快樂和無故障運行TNT組件,並且你的應用不會讓你賺錢,那就把它留在原地。如果它讓你賺錢,投入你的時間,你很快就會看到獎勵。 Delphi 2010和2009是有史以來最好的delphi版本,唯一讓人頭痛的問題是,自從它們移除WinHelp格式幫助文件以來,文檔一直低於Delphi 7的質量。
指定的AnsiString類型到的UnicodeString可能導致數據丟失!這就是編譯器爲此發出警告的原因。這不是一個性能警告,它確實是一個數據警告。分配的UnicodeString到UTF8字符串,另一方面,不會造成任何數據丟失,以UTF-8是由設計一個無損Unicode編碼,並且被報道爲它沒有編譯器警告。 – 2009-12-14 20:16:20
哪些字符可存儲在AnsiString類型以Unicode並不代表什麼字符集是他們? – 2009-12-14 20:48:52
雷米?羅布在這裏有一個觀點。注意詳細說明從8位AnsiString UP到UnicodeString可能導致的上轉換損失?因爲我認爲警告出現在那裏的唯一原因就是讓你思考:「爲什麼我在這裏有這個AnsiString,而且我不是在浪費內存和CPU時間以及所有這些隱含的上轉換?」 – 2010-02-10 23:50:54