在 Rust 中,有没有办法使用 Windows 约定在 r###"..."### 中创建文字换行符?
In Rust, is there a way to make literal newlines in r###"..."### using Windows convention?
我在 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 行终止符的文本。
我在 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 行终止符的文本。