2
對於Unicode版本專家:使用D2009進行ansi轉換的OEM +
是否可以定義反映當前OEM編碼的ansistring類型?
(假設AnsiString類型沒有代碼頁標識符反映ANSI代碼頁)
這是一個笑話的問題一半,半認真:
這將簡化我的CRT單元的端口爲Unicode大大(使它不錯,鍵入)
對於Unicode版本專家:使用D2009進行ansi轉換的OEM +
是否可以定義反映當前OEM編碼的ansistring類型?
(假設AnsiString類型沒有代碼頁標識符反映ANSI代碼頁)
這是一個笑話的問題一半,半認真:
這將簡化我的CRT單元的端口爲Unicode大大(使它不錯,鍵入)
看起來您應該可以使用CP_OEMCP
,正如您可以使用CP_ACP
來獲取Ansi代碼頁一樣。
type
OemString = type AnsiString(CP_OEMCP);
如果這樣不起作用,那麼聲明你的變量爲RawByteString
。用它所需的數據填充它,一旦找出當前的OEM代碼頁是什麼(使用GetOEMCP
),請使用SetCodePage
將該代碼頁分配給字符串(儘管如此,儘管它不再是RawByteString
,但儘管如此其聲明的類型)。
我想聲明某些程序只接受OEM。並在必要時進行自動轉換。第一個解決方案適合這個並且被接受,第二個解決方案沒有多大意義(因爲手動轉換步驟我可能會簡單地稱爲oemtoansi並返回) – 2010-09-17 14:50:20
(注意我只檢查了邏輯,我沒有真正測試它,或者多種ansistrings是可以重載的TYPE x = y型並不總是適用於此) – 2010-09-17 14:56:24
額外的'type'關鍵字是否必要?如果你可以在AnsiString和Utf8String之間重載,那麼你也應該能夠基於OemString重載。 – 2010-09-17 16:11:20