在我的文件上传过程中,我发现非法字符被保存在表中。 zurück.pdf,C _Word.doc是文件名。这里ü,C和之间的空格_Word被发现为?表列中的。我通过用_(下划线)替换非字母数字值来验证客户端中的文件名,但它仍然转义并保留到数据库中。这些在客户端如何处理?文件名中的非法字符
0
A
回答
3
作为一个德语母语的人,我可以向你保证,'ü'和''都不是非法字符。
您的数据表使用哪种字符编码,以及您在客户端如何确保所有字符都落入有效范围内?
如果您的数据库仅支持ASCII字符(并且无法更改),那么您应该使用System.Text.ASCIIEncoding,它用'?'替换所有非ASCII字符。为你。
更好的是,转义Unicode字符并以与ASCII字符集兼容的某种方式表示它们(例如,使用'\ u9404')来表示Unicode字符9404,参见RFC5137以获取某些执行此操作的方法并阅读Convert a Unicode string to an escaped ASCII string的答案。
0
您可以使用CustomValidator
,致电System.IO.Path.GetInvalidFileNameChars()
或将其结果转换为正则表达式,以使用RegulaExpressionValidator
进行客户端验证。
1
我同意Sebastian - 问题不在于这些文件名是非法字符,而是它们对于您正在使用的数据库不是有效字符。假设数据库是SQL Server,请尝试将列数据类型更改为nchar,nvarchar或ntext(如果它当前是char,varchar或text之一)。
相关问题
- 1. PHP文件重命名 - 文件名中的非法字符
- 2. xml文件中的非法字符
- 3. 用有效字符替换非法文件名字符
- 4. 替换文件名中的非法字符
- 5. 删除文件名中的所有非数字字符
- 6. JSch下载与文件名的文件在非ASCII字符
- 7. 文件名加密(不含非法字符)
- 8. 非法字符附加到JavaScript文件
- 9. 文字中的非ASCII,非Unicode字符
- 10. git2p4提交失败,因为在文件名中的非法字符的
- 11. 删除文件名中的非数字字符,但扩展名为java
- 12. 删除文件中的非ASCII字符
- 13. XML中的非法字符
- 14. Xml中的非法字符
- 15. URL中的非法字符
- 16. URL中的非法字符
- 17. URL中的非法字符
- 18. URLEncode将解决此问题与文件名称(C#)中的非法字符?
- 19. 铸文字XML错误非法限定名称字符
- 20. 非法字符%
- 21. 非法字符串偏移“名称”laravel
- 22. 如何将非ascii字符添加到文件名中?
- 23. 路径中的非法字符。而捆绑JavaScript文件
- 24. 非法字符(字符中国)
- 25. 字符串的文件名
- 26. 检查非字符串的文件扩展名
- 27. 创建名称包含非ASCII字符的文件夹
- 28. 如何通过JS检查非ASCII字符的文件名?
- 29. 替换文件名中的unicode字符?
- 30. Java - 文件名中的特殊字符