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