我想我開始明白Unicode的,但是這個我百思不得其解:爲什麼某些字符常量寬1字節,其他2字節寬?
const
c1 = #1; --> SizeOf() = 2
c2 = #33; --> SizeOf() = 2
c3 = #127; --> SizeOf() = 2
c4 = #128; --> SizeOf() = 1
c5 = #160; --> SizeOf() = 1
c6 = #161; --> SizeOf() = 1
c7 = #255; --> SizeOf() = 1
誰能解釋? 德爾福XE2,默認的Windows 1252代碼頁
感謝 月
說明還http://qc.embarcadero.com/wc/qcmain.aspx?d= 100685 gotcha –
@ Arioch'The - 我不知道如何解決這個'錯誤',因爲這真的是在Delphi中如何實現Unicode的; Ord(Ch)通常取決於默認的ANSI代碼頁;在具有不同ANSI代碼頁的系統上編譯時,可以獲得不同的二進制文件。 – kludg
@Serg 默認哪個?在同一個項目中,我們可以在至少三個不同的代碼頁中編碼源... ---- 就我個人而言,我認爲Ord(WideChat)應儘可能映射到UTF-16字。 Ord(AnsiChar)應映射到GetACP()字節,如果可能的話。 分別有Chr(Byte):AnsiChar和Chr(Word):WideChar; 如何處理MBCS和Unicode代理我不知道,但希望它是罕見的野獸。 –