我有一个名为 path 的变量,它是我程序中的外部输入。例如 path = "C:\OpenSSL-Win64\bin\public_privatekey.pfx";我想将路径转换为 @"C:\OpenSSL-Win64\bin\public_privatekey.pfx" 以便反斜杠不会被读取为转义字符。外部输入不能在输入中手动添加双反斜杠。即不能输入“C:\\OpenSSL-Win64\\bin\\public_privatekey.pfx”。有没有办法做到这一点?
3 回答
智慧大石
TA贡献1946条经验 获得超3个赞
如果您的字符串来自外部源并且不是硬编码的,例如您从文件中读取它,那么该字符串已经被转义了。你不需要做任何进一步的逃避。试试看:
var path = GetThePath();
ConSole.WriteLine(path); // prints C:\OpenSSL-Win64\bin\public_privatekey.pfx
要验证是否只需path在调试时将鼠标移到-variable 上:
但是,如果您自己输入字符串,则需要对斜杠进行转义:
var path = "C:\\OpenSSL-Win64\\bin\\public_privatekey.pfx";
甚至更简单地添加逐字逐句:
var path = @"C:\OpenSSL-Win64\bin\public_privatekey.pfx";
跃然一笑
TA贡献1826条经验 获得超6个赞
当您将文本框中的文本分配给字符串类型变量时,将自动添加反斜杠以转义特殊字符,因为框架知道您将文本分配给字符串变量。
如果您需要编程实现,您可以通过在字符串前添加“@”来简单地使用逐字字符串。
string foo = textbox1.text;
或者
string foo = @"C:\OpenSSL-Win64\bin\public_privatekey.pfx";
但请记住,引号不会用 '@' 转义,因此如果您需要转义引号 ("),请执行以下操作:
string foo = "some text \"some more text\" and something else here";
- 3 回答
- 0 关注
- 601 浏览
添加回答
举报
0/150
提交
取消