您好,我有一个应用程序在Windows XP专业版、Windows Vista和Windows 7上运行良好。
但是,在Windows XP嵌入式系统上运行时,它无法正常工作,并显示以下错误:
EEncodingError - 无效的代码页
当使用Delphi 2006制作应用程序时,它可以在Windows XP嵌入式系统上运行。
**当使用Delphi 2010制作应用程序时,它无法在Windows XP嵌入式系统上运行。**
您好,我有一个应用程序在Windows XP专业版、Windows Vista和Windows 7上运行良好。
但是,在Windows XP嵌入式系统上运行时,它无法正常工作,并显示以下错误:
EEncodingError - 无效的代码页
当使用Delphi 2006制作应用程序时,它可以在Windows XP嵌入式系统上运行。
**当使用Delphi 2010制作应用程序时,它无法在Windows XP嵌入式系统上运行。**
TEncoding.ASCII
属性使用的是代码页 20127,这个代码页在 XP 嵌入式系统中默认没有安装,你需要手动安装。在 D2006 中,TEncoding
类不存在。
你是否恰好正在使用 Indy 10?它默认使用 TEncoding.ASCII
作为字符串编码方式。当在 XP 嵌入式系统上使用 Indy 时,这种精确错误已知会发生。
它什么时候崩溃?在启动时还是稍后?
这个错误只在RTL中的一个地方找到,至少是在SysUtils中。在SysUtils中,constructor TMBCSEncoding.Create(CodePage, MBToWCharFlags, WCharToMBFlags: Integer);
,它被TEncoding调用来设置字符串编码。
它获取CodePage
参数并对其调用GetCPInfo,如果失败则引发此异常。从MSDN文档和异常消息来看,可能正在发生的情况是您的应用程序正在尝试使用XP Embedded不支持的多字节字符集中的字符串。您是否在使用使用不同字母表的外语字符串或文本工作时做了任何不寻常的事情?