![]() |
1
27
我们有一个遗留系统,它使用触发器和dbmail在输入表时发送HTML编码的电子邮件,因此我们需要在电子邮件生成中进行编码。我注意到Leo的版本有一个轻微的错误,对&在里面
|
![]() |
2
27
有点晚了,但无论如何,这里有正确的方法: HTML编码(HTML编码=XML编码):
HTML解码:
如果要正确执行,可以使用CLR存储过程。
幸运的是,您可以从mono源代码(.NET for Linux)中删除System.Web.HttpUtility。然后,您可以使用HttpUtility而无需引用system.web。 然后编写以下CLR存储过程:
并登记:
之后,您可以像正常功能一样使用它:
如果你想在生产中使用这个功能。
您需要在构建选项中定义NET_2_0
|
![]() |
3
14
编辑: 因为您是从datatable绑定数据。使用内联表达式在GridView的标记中调用HTMLEncode,或者使用任何控件,这样仍然可以满足数据绑定要求。见下面的例子。或者,您可以循环数据表对象中的每个记录,并在数据绑定之前使用html编码的字符串更新每个单元格。
|
![]() |
4
7
我认为数据库中的数据不应该知道或关心用户界面。显示问题应由表示层处理。我不想看到任何HTML混合到数据库中。 |
![]() |
5
4
您可以简单地使用“查询中的XML路径”。例如 DECLARE @encodedString VARCHAR(MAX) SET @encodedString = 'give your html string you want to encode' SELECT @encodedString SELECT (SELECT @encodedString FOR XML PATH('')) 现在,如您所愿,您可以在自己的sql函数中实现这一点。希望这会有所帮助。 |
![]() |
6
2
如果无法控制数据库,可以使用Encoding.ASCII.GetString将字符串“展平”为ASCII。 |
![]() |
7
0
我自己还没有尝试过这个解决方案,但我会尝试使用sql server/.NET CLR集成,并实际从t-sql调用C#HTMLEncode函数。 这可能效率低下,但我怀疑它会给你最准确的结果。 http://msdn.microsoft.com/en-us/library/ms254498%28VS.80%29.aspx |
![]() |
8
0
今天我一直在用T-SQL做这件事,主要是为了好玩,因为我的需求改变了,但我找到了一个解决办法。您可以使用由NCHAR()函数生成的unicode字符表,也可以直接导入它,从0迭代到65535(如果您只需要前512个字符或其他字符,则可以使用更少的字符)。然后重建字符串。可能有更好的方法来重建字符串,但这在紧要关头起作用。
创建表#Unicode字符( 单字符 ) ;
` 我知道您通常会使用[0-9A-Za-z],但出于某种原因,在我这样做时,它考虑了该表达式范围内的重音字符。所以我在表达式中显式地使用了我不想转换为Unicode的每个字符。
|
![]() |
9
-1
将其分配给标签的文本属性,它将由.NET自动编码 |
![]() |
10
-1
好的,这就是我所做的。我创建了一个简单的函数来处理它。它远未完成,但至少符合标准
然后我可以使用:
这给了我一个HTML安全记录ID。可能有一个内置函数,但我找不到它。 |
![]() |
Haim Ohayon · 这些链接之间有什么区别? 2 年前 |