首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为Mono的xbuild设置源文件字符编码

为Mono的xbuild设置源文件字符编码
EN

Stack Overflow用户
提问于 2011-06-29 20:52:09
回答 1查看 2.5K关注 0票数 1

我正在生成由VS2010和Mono的xbuild (2.10.2.0)构建的C#源代码。这通常工作得很好,到目前为止,我只有一个兼容性问题,在这种情况下,我使用的是一个明确指定为未定义行为的“功能”(所以我要道歉)。

现在我遇到了一个问题,在C#源代码中的字符串文字中有特殊字符。我用UTF-8生成源文件,我测试的字符是一个German sharp s: 0xC39F。这是由代码写入latin1中的一个文件,当使用VS (这就是我想要的)构建可执行文件时,它以0xDF结束,而当使用xbuild构建时,它以0xC33F结束。

在我看来,使用.NET或Mono CLR运行可执行文件似乎并不重要。

我现在怀疑xbuild没有将源代码作为UTF-8读取,因此编译后的代码在字符串文字中已经有了错误的字符。有没有办法明确地告诉它呢?我在xbuild /?上找不到任何东西,xbuild documentation也不是特别全面。当然,如果我错过了文档记录的正确页面,那么只需一个链接就足够了。

所有实验都是在Win7 x64上进行的。

编辑1:为了清楚起见,我使用十六进制编辑器确认源代码文件中的字符确实是0xC39F,使用VS2010编译时编写的字符是0xDF,使用xbuild编译时编写的字符是0xC33F

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-30 18:57:32

您需要修改.csproj文件并向该部分添加一个元素。

您也应该能够使用Visual Studio或MonoDevelop来为您完成此操作。

在MonoDevelop中,如果你右击一个项目并选择"Options“菜单项,你就可以转到Build/General部分,会有一个"Compiler Code Page”字段,你可以用它来选择"UTF-8“。

FWIW,这是MD在我选择UTF-8时的输出:

65001

因此,您只需将其复制/粘贴到

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6520919

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档