我最近在C应用程序中遇到了一些问题。此应用程序在生产中工作正常,但在本地测试中失败。将int转换为char
我的应用程序:
- 收集参数文件中插入和提取数据库的一些信息。 (此参数是用来确定的分离器和一些选项CSV出的文件或日志文件)
- 使用批量插入创建的.fmt文件
后出现的问题。在创建.fmt文件之前,应用程序会翻译“代码页850”中的分隔符。这不是我创造这个部分,但它在生产中工作正常。我们使用分隔符'¤',作为回报,这个函数使用char'Ì'而不是'¤'。
我加深了我的研究,我发现:
printf("\n%c", -49); --> '¤' on my PC (Windows 7)
printf("\n%c", -49); --> 'Ì' on VM (Windows 2008 R2)
如何自然皈依是干什么的?用ASCII表,不是? 这个结果如何可以有所不同?
这个问题发生在一个月前,但以前工作正常。我们更改语言& Region和某些Windows注册表等信息。
这会对我的问题产生影响吗?
据我所知,存在没有负指数的符号表。 – Lundin
如果你对每个文件写了一个hexdump,它们是否显示为相同的字符?根据语言环境,您的应用程序可能会有所不同。确保两个系统上的语言环境相同以获得相同的结果。 –