Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.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# SQL Server-如何替换“SQL Server”;“奇怪”;角色?如何将UTF-8 HTML响应编码为ASCII?_C#_Sql_Character - Fatal编程技术网

C# SQL Server-如何替换“SQL Server”;“奇怪”;角色?如何将UTF-8 HTML响应编码为ASCII?

C# SQL Server-如何替换“SQL Server”;“奇怪”;角色?如何将UTF-8 HTML响应编码为ASCII?,c#,sql,character,C#,Sql,Character,我正在使用一些C#向SQL Server数据库中插入一些文本。我正在使用System.Web.HttpUtility.HtmlEncode()尝试替换与我的数据库的字符集不兼容的字符(设置为默认排序规则=SQL\u Latin1\u General\u CP1\u CI\u AS),但这对我处理一些“奇怪”字符没有帮助 例如,此破折号字符: ― 与标准破折号字符不同。(-) HtmlEncode()不会将第一个破折号替换为实体(我认为它是“—”),它最终会在我的数据库中变成一个“?”

我正在使用一些C#向SQL Server数据库中插入一些文本。我正在使用System.Web.HttpUtility.HtmlEncode()尝试替换与我的数据库的字符集不兼容的字符(设置为默认排序规则=SQL\u Latin1\u General\u CP1\u CI\u AS),但这对我处理一些“奇怪”字符没有帮助

例如,此破折号字符: ― 与标准破折号字符不同。(-)

HtmlEncode()不会将第一个破折号替换为实体(我认为它是“—”),它最终会在我的数据库中变成一个“?”

在插入SQL Server之前,清除/清理文本字段的最佳方法是什么


我宁愿不更改我的数据库配置/排序规则。

“―”不是HTML元字符,因此
HtmlEncode()
不会对它做任何事情。无论如何,SQL和HTML元字符是完全不同的;为什么要将HTML元字符放在SQL数据库中?请使用占位符和N[VAR]字符列作为Unicode。。不过,不确定用HTML替换的标准方法。(还必须对所有其他非ASCII字符进行编码,即使没有正式的实体名称。)Dour,我不想将HTML放入文本字段,但如果它去掉了这些无法识别字符的问号,我会这样做。@Dudeman3000
的根本问题是拉丁语!=Unicode,并且
不在CP中。您正在输入HTML。问题是如何对它进行编码——这完全可以用HTML字符实体来完成。(HtmlEncode不会这样做,因为通常会返回UTF流,这不是避免HTML注入混乱所必需的。此任务实际上是“如何将UTF-8 HTML响应编码为ASCII?”)我建议将列扩大到N[VAR]字符,并避免混乱。@pst,和
编码。Convert
不会尝试将所有字符都转换为拉丁文1。就像我认为杜德曼想要的那样,它省略了它们。