在我的文件上傳過程中,我發現非法字符被保存在表中。 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. CCL打破文件/目錄名稱中的非法字符?
- 5. Javascript:如何從文件名中刪除非法的URL字符?
- 6. 替換文件名中的非法字符
- 7. 刪除文件名中的所有非數字字符
- 8. 刪除文件名中的非字母字符
- 9. JSch下載與文件名的文件在非ASCII字符
- 10. 文件名加密(不含非法字符)
- 11. JQuery屏蔽輸入 - 沒有非法文件名字符
- 12. 非法字符附加到JavaScript文件
- 13. 文字中的非ASCII,非Unicode字符
- 14. git2p4提交失敗,因爲在文件名中的非法字符的
- 15. 如何測試文件名中的非ASCII字符
- 16. Perl Net ::文件名中的FTP和非ASCII(UTF8)字符
- 17. Qt:文件名中的非ASCII字符被替換爲'?'
- 18. 刪除文件名中的非拉丁字符
- 19. 刪除文件名中的非數字字符,但擴展名爲java
- 20. 刪除文件中的非ASCII字符
- 21. 在文件名中創建包含非英文字符的文件
- 22. XML中的非法字符
- 23. XML中的非法字符
- 24. Xml中的非法字符
- 25. URL中的非法字符
- 26. URL中的非法字符
- 27. URL中的非法字符
- 28. javascript中的非法字符
- 29. 在Linux上查找名稱中含有非法窗口字符的文件
- 30. URLEncode將解決此問題與文件名稱(C#)中的非法字符?