我有一个奇怪的问题。我有一个存储文件的 ASP.NET 应用程序。我有一个表(SQL 2008 R2),我在其中存储用户上传的文件的文件信息。
有时,当我使用特殊字符存储来自国际用户的文件名时,该名称在存储在数据库表中时会被转换:示例原始文件名:Łinename.mov 存储的文件名:Linename.mov
当我检索文件名以构建我的路径/文件字符串时,名称不匹配并且找不到我的文件。
该表将文件名存储为 nvarchar,我认为这将允许 unicode 字符。
有任何想法吗?我宁愿存储原始文件名,而不是重命名服务器上的文件。
编辑:我认为问题在于所讨论的字符不在 UTF-8 字符集中。我通过保持简单来解决这个问题:我支持 UTF-8,如果文件在存储为 UTF-8 时被转换,那就是我的服务器文件名。