在 asp.net 网站上,用户尝试将文件作为电子邮件附件上传,文件名中包含 emdash。当将此作为电子邮件附件(交换服务器)发送时,文件已转换为 _utf8_B_ * ** * .dat
因此,在 .aspx 页面上,我需要能够检测作为 Request.Files 集合的一部分上传的文件的文件名中是否存在 emdash。
string s = "a—b-";
byte[] arr = Encoding.ASCII.GetBytes(s);
foreach (byte element in arr)
{
Response.Write(element.ToString() + ",");
}
上面的字符串有一个破折号作为第二个字符,一个普通连字符作为第四个字符。
上面的代码将 97,63,97,45 打印到屏幕上。
我假设 emdash 不是一个有效的 ASCII 字符,要么会抛出一个错误,要么有一些迹象表明它不是一个有效的 ASCII 字符。然而它返回 63。
如何检测文件名中的 emdash,以便我可以对用户说“您的文件名中包含无效字符”?我在这个问题上看到了其他问题,我无法让它们工作。