我在网页上遇到了一个非常奇怪的问题,英镑符号显示不正确(或者根本不显示)。我在文本框中输入文本,然后将其(简要地)存储在 XML 中,最后在新的 IE(6)窗口中显示。最糟糕的是这种情况并不一致。有三种不同的情况:
1. 英镑符号甚至不出现在源代码中(假设 XML 默认使用 UTF-8,因此它会将其剥离)。
2. 英镑符号在源代码中出现但在网页上没有显示。
3. 英镑符号在源代码和网页上都正常显示(通常情况下,如果发生这种情况,这是第一次显示时发生的)。
现在,这只是更大问题的一部分。我一般地研究了一下,并进行了一些调查,发现如果我有纯 ASCII(ISO 8859-1 - Western Europe)并转换为 UTF-8,则它完全不知道该符号是什么,并将其完全删除(在这种情况下,我已经看到它被替换为“?”、“方块”或其他地方的倒置“?”)。
如果您将井号作为UTF-8输入并转换回ISO 8859-1,则在井号之前会得到一个大写A帽子(Â)。
至少我可以基本理解后者——这是因为我们的系统必须在不同的字符编码中保存(或存储在Oracle中)英镑符号,而且由于我们通常不为网页指定字符编码,因此有时IE会混淆并显示不正确的内容。
但我不明白上面概述的不一致结果。
我意识到我的初始解释有点含糊不清,但我希望写出我的简要解释能够帮助自己整理思路,并可能帮助其他人理解类似的问题。
编辑:此外,我意识到我可以用HTML实体(£)替换所有英镑符号,但我觉得这很耗时且凌乱(如果它存储在Oracle中并稍后传递给PDF、Excel等呢?)。
当然,任何指针和建议都将不胜感激!
谢谢!
1. 英镑符号甚至不出现在源代码中(假设 XML 默认使用 UTF-8,因此它会将其剥离)。
2. 英镑符号在源代码中出现但在网页上没有显示。
3. 英镑符号在源代码和网页上都正常显示(通常情况下,如果发生这种情况,这是第一次显示时发生的)。
现在,这只是更大问题的一部分。我一般地研究了一下,并进行了一些调查,发现如果我有纯 ASCII(ISO 8859-1 - Western Europe)并转换为 UTF-8,则它完全不知道该符号是什么,并将其完全删除(在这种情况下,我已经看到它被替换为“?”、“方块”或其他地方的倒置“?”)。
如果您将井号作为UTF-8输入并转换回ISO 8859-1,则在井号之前会得到一个大写A帽子(Â)。
至少我可以基本理解后者——这是因为我们的系统必须在不同的字符编码中保存(或存储在Oracle中)英镑符号,而且由于我们通常不为网页指定字符编码,因此有时IE会混淆并显示不正确的内容。
但我不明白上面概述的不一致结果。
我意识到我的初始解释有点含糊不清,但我希望写出我的简要解释能够帮助自己整理思路,并可能帮助其他人理解类似的问题。
编辑:此外,我意识到我可以用HTML实体(£)替换所有英镑符号,但我觉得这很耗时且凌乱(如果它存储在Oracle中并稍后传递给PDF、Excel等呢?)。
当然,任何指针和建议都将不胜感激!
谢谢!