2011-06-08 55 views
0

在Visual Studio 2010中使用VB.NET,我有两个文件: “test2.aspx”和“test2.aspx.vb”。 ASPX文件基本如下:如何防止.NET中的自动字符编码

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="test2.aspx.vb" Inherits="App_test2" %> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<meta id="meta1" runat="server" name="description" /> 
</head> 
<body> 
<textarea id="text1" runat="server" /> 
</body> 
</html> 

vb的文件基本上是这样的:

meta1.Attributes("charset") = "UTF-8" 
meta1.Attributes("content") = "I'm a description tag" 
text1.InnerText = "&'<>" 

本作预计将在浏览器中所有的显示,但是当页面呈现的外观的源代码像这样:

<html> 
<head> 
<meta id="meta1" name="description" content="I&#39;m a description tag" charset="UTF-8"></meta> 
</head> 
<body> 
<textarea name="text1" id="text2">&amp;&#39;&lt;&gt;</textarea> 
</body> 
</html> 

有什么我可以做这样的源代码也没有放过像“&”,“'”字符,“<“和”>“?

回答

1

你不知道。如果它没有转换这些字符,浏览器会错误地将它们解释为命令而不是数据。它不应该是你的问题,因为它总是被转换回代码中的字符数据。 text2.Text将包含您想要的值,而不是转义的数据。

+0

这很有趣。我在雅虎的主页上注意到,他们描述的meta标签包含一个非转义的撇号。我想知道他们是如何做到这一点,而不是将其硬编码到index.html文件中。任何线索他们如何做到这一点? 回复:text2-应该说text1。对不起,任何混乱,特别是我的。谢谢! – dstrube 2011-06-10 16:04:00

+0

撇号是你可以在字符串中逃脱的一个。您正在查看的雅虎页面可能是硬编码,而您正在使用的.aspx页面通过asp.net处理器。搜索引擎知道将这些转义的代码转换为适当的字符串,它不应该影响你做的任何事情。 – 2011-06-14 06:52:35