Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 文件名中的非法字符_C#_Asp.net_Javascript_Validation_Illegal Characters - Fatal编程技术网

C# 文件名中的非法字符

C# 文件名中的非法字符,c#,asp.net,javascript,validation,illegal-characters,C#,Asp.net,Javascript,Validation,Illegal Characters,在我上传文件的过程中,我发现表中保存了非法字符zurück.pdf,C_Word.doc是文件名。在这里,u,C和\U Word之间的空格在表格列中显示为?。我已经在客户端验证了文件名,将非字母数字值替换为u(下划线),但它仍然会转义并保存到数据库中。如何在客户端处理这些问题?您可以通过调用System.IO.Path.GetInvalidFileNameChars()来使用CustomValidator或将其结果转换为正则表达式,以便使用RegulaExpressionValidator进行客

在我上传文件的过程中,我发现表中保存了非法字符zurück.pdfC_Word.doc是文件名。在这里,uC\U Word之间的空格在表格列中显示为。我已经在客户端验证了文件名,将非字母数字值替换为u(下划线),但它仍然会转义并保存到数据库中。如何在客户端处理这些问题?

您可以通过调用
System.IO.Path.GetInvalidFileNameChars()来使用
CustomValidator
或将其结果转换为正则表达式,以便使用
RegulaExpressionValidator
进行客户端验证。您可以使用
CustomValidator
调用
System.IO.Path.GetInvalidFileNameChars()
或将其结果转换为正则表达式,以便使用
RegulaExpressionValidator进行客户端验证

作为母语为德语的人,我可以向您保证,“ü”和“”都不是非法字符

您的数据表使用哪种字符编码,以及在客户端如何确保所有字符都在有效范围内

如果您的数据库只支持ASCII字符(并且不能更改),那么您应该使用它来为您将所有非ASCII字符替换为“?”


更好的方法是,转义Unicode字符,并以与ASCII字符集兼容的方式表示它们,例如,使用“\u9404”表示Unicode字符9404,有关执行此操作的一些方法,请参阅,并阅读其答案。

作为母语为德语的人,我可以向您保证,“ü”和“都不是非法字符

您的数据表使用哪种字符编码,以及在客户端如何确保所有字符都在有效范围内

如果您的数据库只支持ASCII字符(并且不能更改),那么您应该使用它来为您将所有非ASCII字符替换为“?”

更好的方法是,转义Unicode字符,并以与ASCII字符集兼容的方式表示它们,例如,使用“\u9404”表示Unicode字符9404,请参阅,以了解执行此操作的一些方法并阅读其答案。

我同意--问题不在于这些字符对于文件名是非法字符,但它们不是您正在使用的数据库的有效字符。假设数据库是SQL Server,如果列数据类型当前是char、varchar或text,请尝试将其更改为nchar、nvarchar或ntext。

我同意,问题不在于这些是文件名的非法字符,而在于它们不是您正在使用的数据库的有效字符。假设数据库是SQL Server,尝试将列数据类型更改为nchar、nvarchar或ntext(如果当前是char、varchar或text之一)