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