在我的文件上傳過程中,我發現非法字符被保存在表中。 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 - 文件名中的特殊字符