我有一個名為 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 關注
- 651 瀏覽
添加回答
舉報
0/150
提交
取消