我有一个发送电子邮件的C#应用程序。我希望在邮件中发送一个链接,供用户点击并打开文件。
但是,如果我有链接到我的工作簿,我就会遇到问题。我有5个错误,都是“无法识别的转义序列”,其中每个“/”都是。我如何解决这个问题?
string htmlHeader = "<table style='font-size: 12pt;'>" +
"<tr><a href='file:///G:\Shared\Team\New\Corporate%20Actions\Corp%20Events.xlsx'>Corp Events Workbook></tr><tr/><tr/>" +
"<tr><th align='left'>Status</th><th> </th>" +
"<th align='left'>Sedol</th><th> </th>" +
"<th align='left'>Name</th><th> </th>" +
"<th align='left'>Date Effective</th><th> </th>" +
"<th align='left'>Event Code</th><th> </th>" +
"<th align='left'>Terms</th><th> </th></tr>";
答案 0 :(得分:6)
C#使用字母\
后跟另一个字母来转义字符,例如:换行符:\n
。由于C#中没有\S
转义字符(请参见此处的列表:http://msdn.microsoft.com/en-us/library/h21280bw.aspx),编译器无法对其进行解析。要解决它们\\
,转义后跟反斜杠,以便编译器知道你打算打印\
。
〔实施例:
string htmlHeader = "<table style='font-size: 12pt;'>" +
"<tr><a href='file:///G:\\Shared\\Team\\New\\Corporate%20Actions\\Corp%20Events.xlsx'>Corp Events Workbook></tr><tr/><tr/>" +
"<tr><th align='left'>Status</th><th> </th>" +
"<th align='left'>Sedol</th><th> </th>" +
"<th align='left'>Name</th><th> </th>" +
"<th align='left'>Date Effective</th><th> </th>" +
"<th align='left'>Event Code</th><th> </th>" +
"<th align='left'>Terms</th><th> </th></tr>";
注意第二行,在路径部分,有一个双左反斜杠而不是一个。
答案 1 :(得分:2)
尝试在包含转义序列的字符串(部分)前添加@
像:
string htmlHeader = "<table style='font-size: 12pt;'>" +
@"<tr><a href='file:///G:\Shared\Team\New\Corporate%20Actions\Corp%20Events.xlsx'>Corp Events Workbook></tr><tr/><tr/>" +
"<tr><th align='left'>Status</th><th> </th>" +
"<th align='left'>Sedol</th><th> </th>" +
"<th align='left'>Name</th><th> </th>" +
"<th align='left'>Date Effective</th><th> </th>" +
"<th align='left'>Event Code</th><th> </th>" +
"<th align='left'>Terms</th><th> </th></tr>";
不是最干净的解决方案,但它是一个有效的解决方案。我建议您查看UnTraDe响应。