2010-07-22 145 views
5

我通常是一个LAMP开发人员,但一些.NET工作已到达我的盘子,我有点难住。从ASP.NET字符串中消失的英镑符号(英镑)

如果我运行下面的代码:显示

<% poundsign = "£" %> 
<% Response.Write poundsign %> 
<% Response.Write "£" %> 

...什么都没有。但是,在< %%>标签之外(即在HTML中)显示正确。

我没有麻烦显示通常的字母数字,它只是英镑证明有问题。底层文件采用Windows 1252编码,我需要像这样来提供它。如果我把文件保存为UTF-8,我得到的是mojibake而不是£。

有没有人知道我能做些什么来完成这项工作,或任何可能阻止它工作的设置(除了以不同的格式保存文件)?提前致谢。

编辑:对不起,我应该早些提到,但&磅;将无济于事。除了我的页面没有出现,我的问题的一个主要部分是我需要将包含£的字符串插入到SQL服务器数据库中,但是如果我在ASP中形成SQL INSERT语句,则无的英镑符号最终出现在数据库中。当我将.asp文件保存为UTF-8文件时,从ASP插入数据库并不是问题,但我需要一切工作在Windows 1252编码中。再次感谢。

+0

你没有在后面的代码中处理它的任何原因? – 2010-07-22 17:58:30

+0

@Sonny Boy,为什么会改变行为? – jball 2010-07-22 18:00:10

回答

2

感谢您的帮助,每个人。事实证明,这个问题是由我的Windows-1252 ASP文件加载UTF-8包含引起的,从而搞乱了结果页面的编码。

5

使用ASCII码&pound;

这是一个HTML实体,需要通过代码来进行访问,阅读更多here

+0

感谢您的回答 - 唉HTML实体不会帮助我,原因现在我原来的帖子中解释。对不起,首先不清楚! – 2010-07-22 21:25:51

+0

不确定,£是Windows 1252编码字符集的一部分,请参阅http://en.wikipedia.org/wiki/Windows-1252 – 2010-07-22 21:46:01

3

使用以下:

<% Response.Write("&pound;") %> 
1

这个怎么样?

<% poundsign = Chr(163) %> 
<% Response.Write poundsign %> 
<% Response.Write "£" %> 
+0

奇怪的是,chr(163)显示为“s”。 – 2010-07-23 10:01:39