我有一个不完全是文本的资源。 这是一个包含一些文本和一些ANSI控制代码的文件。 在我的程序中,我正在处理它作为一个二进制文件。 但是,我发现当我用System.Resources.ResourceManager.GetObject()加载它作为byte []时,所有的CRLF都被转换为LF。 这不完全是我想要的。 我不知道是否在编译时或运行时发生。
同样的项目在Windows和OS X上的Xamarin工作正常。没有转换正在发生。 这只发生在Linux上。 我确定磁盘上的文件确实包含CRLF。 我根据ResourceManager加载的byte []的大小检查了文件大小。
任何想法如何防止这种情况发生? 谢谢。
这种行为取决于设置选项 – >文本编辑器 – >一般 – >线结束对流:
您可能将此设置设置为“始终转换行结束符”,并且您可能需要“保持行结束”或“始终请求转换”。
这也可以连接到您的GIT设置,在结帐时将所有行结束符转换为LF。 有关更多信息,请参阅“git config core.eol”和“git config core.autocrlf”。