2010-01-25 125 views
1

我有一个URL重定向到我的主站点上的页面。出于某种原因,当我通过重写的URL访问时,TM符号显示为?,但是当我通过主站点访问时,它显示正确。TM符号在重定向的URL上无法正确显示

的网址是http://waterlessmilkwarmer.com/http://www.medelabreastfeedingus.com/milk-warmer所以你可以看到发生了什么。他们都在查看完全相同的页面(第一个url重定向到第二个)。看看页面标题(“介绍第一个也是唯一的......”),看看发生了什么。

该网站在.NET上运行,该页面标题正在存储并直接从数据库中拉出。它上面有HTMLEncode调用,但是当我删除它们并直接从数据库中显示它时,它仍然执行相同的操作。

我猜重定向的URL都有事做,但我不知道是什么。有没有人看过这个,知道会发生什么?

+0

你究竟做了什么重定向?它不是一个http 3xx重定向,因为来自http://waterlessmilkwarmer.com/的响应状态码是200.在我看来,TM符号(UTF-8中的HE符号E2十六进制,正如在http:// www .medelabreastfeedingus.com/milk-warmer)获得双重编码:http://waterlessmilkwarmer.com/,它是十六进制C3 A2 C2 84 C2 A2。 – 2010-01-25 20:01:08

回答

0

事实证明,数据库中TM符号存在问题。一旦它被删除并重新加入,一切似乎都可以正常工作。

1

我不知道为什么会发生这种情况(绝对很奇怪),但我注意到您使用的是实际字符,而不是HTML编码版本™,无论哪种方式都行不通。

3

如果你看看Firefox的页面属性,这两个页面的渲染模式是不同的。

medelabreastfeedingus.com - >符合标准模式
waterlessmilkwarmer.com - >怪癖模式

嫌疑这是什么原因造成的差异。 <base href="http://www.medelabreastfeedingus.com/" />标记可能会触发不同的呈现模式,该标记在<html>标记之外呈现,也可能在<DOCTYPE>标记之前呈现 - 我的HTML验证程序认为doctype标记不能出现在其他元素之后。

您可以尝试使用HTML实体(&trade;将呈现为™) - 这应该在两种模式下都可以使用。

+0

我怀疑有故障的使用''(应该是在'',而不是在文档的开始)也可能会导致浏览器忽略''在字符集声明。国际海事组织更好地解决这个问题,而不是求助于HTML实体引用(毕竟还有其他的Unicode字符可以使用)。 – bobince 2010-01-25 19:28:33

+0

是的,我同意。我验证了重定向的页面,还有几个其他问题看起来像是由于'base'标签位于错误的位置。 – adrianbanks 2010-01-25 19:31:10