C# 轉義字符保持不被自動轉義的處理


/// <summary>
/// 轉義字符在字符串中保持不變的處理方案,再次進行Escape
/// 如果想輸出對應c字符,那么需要使用轉義方式,這樣可能保證字符串的輸入和輸出不變,不然會被自動轉義,尤其在寫文件的時候
/// 比如文件中想寫入\b,不加轉義的話,就會變成b,然后顯示一個特殊的符合!!!

/// 空格是一個空白字符,ASCII碼是32

/// \0某種意義說是字符串結尾

/// 或者直接使用System.Text.RegularExpressions.Regex.Escape(str);

/// </summary>
/// <param name="str"></param>
/// <returns></returns>
static public string CustomToEscape(string str)
{
StringBuilder sb = new StringBuilder("");
for (int i = 0; i < str.Length; i++)
{
char c = str[i];
switch (c)
{
case '\\': // 反斜杠
sb.Append("\\\\");
break;
case '/': // 正斜杠
sb.Append("\\/");
break;
case '\'': // 單引號
sb.Append("\\\'");
break;
case '\"': // 雙引號
sb.Append("\\\"");
break;
case '\a': // 感嘆號
sb.Append("\\a");
break;
case '\b': // 退格
//sb.Append(c);
sb.Append("\\b");
break;
case '\f':
sb.Append("\\f");
break;
case '\n':
sb.Append("\\n");
break;
case '\r':
sb.Append("\\r");
break;
case '\t':
sb.Append("\\t");
break;
// 空格是一個空白字符,ASCII碼是32
// \0某種意義說是字符串結尾
case '\0':// \0,會終止對此字符串的所有操作
sb.Append("\\0");
break;
default:
sb.Append(c);
break;
}
}
return sb.ToString();
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM