【问题标题】:How to replace special character '<' from string in SQL server?如何从 SQL Server 中的字符串中替换特殊字符“<”?
【发布时间】:2014-09-01 11:35:36
【问题描述】:

我正在从 SQL Server 向 HTML 中的标签插入一个动态 html 字符串。

当 HTML 字符串包含 '

我已创建小提琴供您参考 http://jsfiddle.net/Loxr10nn/

我想替换 H​​TML 字符串中的 '&lt;' 字符。如果找到像 Character &lt; ANY WORD without space 这样的完全匹配项,则按原样处理。

如果字符为“STEP ONE DIET &lt;THAN 200 MG CHOL/DAY INCREASE EXERCISE”,则解析会出现问题。 否则"&lt; THAN" 就可以了。

当将该字符串插入 MS SQL 服务器时,我想将 &lt;THAN 替换为 &lt; THAN,如果发现任何此类单词,则应将其替换。我想在 SQL 服务器程序中执行此操作。

【问题讨论】:

  • @RST 没有 php 代码对我有用。我正在寻找 MSSQL 服务器.. 在 C# 中使用 MSSqlsever
  • 为什么不在c#中使用HttpUtility.HtmlEncode
  • @JérômeTeisseire 我通过 web 服务调用使用 javascript 设置了 html 内容,所以这是不可能的。在 MsSql 服务器中保存时可以检查。

标签: html replace sql-server-2008-r2 special-characters


【解决方案1】:

因此,根据您要在哪里执行此操作,无论是在 C# 中还是在 SQL Server 本身上,通常在应用程序中执行,然后将其存储在已格式化的 SQL Server 中是最好的)您可以这样做:

C#:

string original = "STEP ONE DIET <THAN 200 MG CHOL/DAY INCREASE EXERCISE";
string replaced = original.Replace(@"<", "< ");

然后将替换的字符串插入到你的数据库中,而不是原来的字符串

SQL 服务器:

您可以在将字符串写入数据库时​​或每次检索它时执行此操作:

REPLACE('STEP ONE DIET <THAN 200 MG CHOL/DAY INCREASE EXERCISE','<','< ')

【讨论】:

  • 我将 Text 设置为 textarea,这样它就会显示 <在 textarea 所以它对我来说毫无价值。如果我在 '
  • 那么您需要做的就是修改我的答案中的代码并更改“<”到“
  • 您好@steoleary,我还保留了字符串中的空间。所以我发布了我自己的解决方案。你是对的,你的代码可以正常工作,但如果有'
【解决方案2】:

我找到了解决方案。我也很欣赏@Steoleary 代码,

DECLARE @Notes varchar(max)
SET @Notes = 'STEP ONE DIET <THAN 200 MG CHOL/DAY INCREASE EXERCISE, Test <  Single space before and after presever spacing'
SELECT @Notes AS BEFORE, REPLACE(REPLACE(CAST(@Notes AS  VARCHAR(MAX)),'<', '< '), '<  ','< ') AS AFTER

--BEFORE
STEP ONE DIET <THAN 200 MG CHOL/DAY INCREASE EXERCISE, Test <  Single space before and after presever spacing
--AFTER ( Spacing around '<' is preserved )
STEP ONE DIET < THAN 200 MG CHOL/DAY INCREASE EXERCISE, Test <  Single space before and after presever spacing

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-16
    • 2014-12-07
    • 2023-03-12
    相关资源
    最近更新 更多