nonascii字符串文字在构建后被转义

时间:2014-07-15 13:42:52

标签: string msbuild escaping c#-3.0

请帮我解决最近出现的问题。

当在构建的机器上构建发布项目时(使用msbuild),代码中的所有字符串文字都使用\ x00NN进行转义,其中nn是两个数字。问题是如果这些值以表格形式显示(winforms),它们会显示为已损坏的编码(如www中的破解代码页)

在源代码中看起来像

str = " Без ПДВ"

但反射器显示

str = " \x00c1\x00e5\x00e7 \x00cf\x00c4\x00c2";

这在表单中显示为带有损坏编码的字符串,如

  

â。÷。 IAA

是什么原因导致msbuild将非ascii字符串文字转换为转义符号?开发人员机器上的开发版本没有这样的问题。

检查区域设置是否为运行ms-build的用户,并且已从德语更改为乌克兰语,非unicode程序语言也是如此。重启后无效。

MsBuild在同一台机器上工作了一年没有这样的问题,但是最新的构建在代码中包含了字符串文字

命令行看起来像

MSBuild {LocalPath}{Solution} /property:DefineConstants="{Defines}{DefinesExtra}" /t:{Target} /property:Configuration={Configuration} {Platform} /clp:NoItemAndPropertyList

目标是构建(或重建它没关系)配置是发布,平台是x86

PS我知道在代码中存储本地化字符串是不好的(但是发生了糟糕的事情)。

0 个答案:

没有答案