DELPHI:EEncodingError - 嵌入了windows xp的无效代码页

时间:2010-06-09 16:41:52

标签: delphi delphi-2010 codepages

嗨,我有一个运行良好的应用程序 windows xp pro,windows Visa,windows 7

但是当我在windows xp嵌入式上运行它时它不起作用 并给出以下错误:

EEncodingError - 无效的代码页

当使用Delphi 2006制作应用程序时,它适用于Windows XP嵌入式

**当使用Delphi 2010制作应用程序时,它无法在Windows XP嵌入式****

上运行

2 个答案:

答案 0 :(得分:3)

TEncoding.ASCII属性使用代码页20127,默认情况下未安装在XP Embedded上。您必须手动安装它。 D2006中不存在TEncoding类。

您是偶然使用Indy 10吗?默认情况下,它使用TEncoding.ASCII作为字符串编码。在XP Embedded上使用Indy时会发生这种确切的错误。

答案 1 :(得分:0)

什么时候崩溃?在启动时,或以后?

该错误仅发生在一个地方,至少在RTL中。在SysUtils中,constructor TMBCSEncoding.Create(CodePage, MBToWCharFlags, WCharToMBFlags: Integer);,由TEncoding调用以设置字符串编码。

它需要CodePage参数并在其上调用GetCPInfo,如果失败则会引发此异常。从MSDN文档和异常消息,可能发生的是您的应用程序正在尝试使用XP Embedded不支持的多字节字符集中的字符串。您是否正在使用不同字母表的外语中的字符串或文本工作做任何不寻常的事情?