问题描述
我在 Windows 上使用 Rust,我发现
r###"abc
def"###
产生一个字符串 abc\ndef
。有没有简单的方法让它abc\r\ndef
?还是必须手动更换?
解决方法
自 2019 年以来,Rust 编译器在读取源文件时将所有 CRLF 序列转换为 LF(参见 merge request、issue),并且无法改变这种行为。
你可以做什么:
- 在运行时使用
.replace("\n","\r\n")
创建一个带有 CRLF 行终止符的新String
。 - 使用常规而不是原始字符串文字并以
\r
结束您的行,例如"abc\r def"
- 使用
std::include_str!()
宏包含一个 UTF-8 格式的文件,该文件包含带有 CRLF 行终止符的文本。