c# – 验证上载的文件是否仅包含纯文本

我有一个ASP.NET MVC应用程序,允许用户上传一个只应包含纯文本的文件.

我正在寻找一种简单的方法来验证文件确实只包含文本.

为了我的目的,我很高兴将文本定义为我可以在GB QWERTY键盘上看到的任何字符.

业务规则意味着我上传的文件不包含任何重音字符,因此代码接受或拒绝这些字符无关紧要.

到目前为止尚未奏效的方法:

>检查内容类型;不好,因为这取决于文件扩展名
>检查每个角色的char.IsControl;不好,因为文件可以包含被认为是控制字符的管道(|)字符

我宁愿避免使用冗长的正则表达式模式来使其工作.

最佳答案 这听起来像你想要
ASCII characters 32-126加上一些赔率和结束,如9(水平标签),回车和&换行等.

I’d rather avoid using a lengthy Regex
pattern to get this to work.

只要这并不意味着“根本没有正则表达式”,您可以使用this stack overflow question中接受的答案(我已将水平制表符添加到原始字符中):

^([^\x09\x0d\x0a\x20-\x7e\t]*)$
点赞