为什么我不能在HTML中显示磅(£)符号?

时间:2010-12-07 22:55:26

标签: javascript html

我正在尝试在HTML中显示英镑符号(来自PHP),但我得到的只是一个带问号的符号。

以下是我尝试过的事情。

在PHP中:

header('Content-type: text/html; charset=utf-8');

在HTML中,将其放在head标签中:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 

我尝试使用javascript函数显示它,将其转换为:

&amp;#65533;

我想如果我知道自己在做什么会有所帮助......但我猜这就是为什么我会问这个问题:)

8 个答案:

答案 0 :(得分:17)

受过教育的猜测:你在UTF-8编码的页面中有一个ISO-8859-1编码的英镑符号。

确保您的数据处于正确的编码状态,一切正常。

答案 1 :(得分:16)

使用&#163;。我遇到了同样的问题并使用jQuery解决了它:

$(this).text('&amp;#163;');
  • 如果您尝试这个并且它不起作用,只需更改jQuery方法,
$(this).html('&amp;#163;');
  • 这总是适用于所有情况......

答案 2 :(得分:11)

1st:英镑符号是utf8编码中的“特殊”字符(尝试在iso-8859-1(或iso-8859-15)文件中保存£$,使用标题编码时会得到ä)

第二:将您的编码更改为utf8格式文件。 有很多方法可以做到这一点。 记事本和记事本++都很棒。

第3名:使用ob_start(); (在php中)如果您遇到奇怪的编码错误,有时会丢失编码,那么在您输出任何输出之前。 是的,这解决了! 当页面在windows-1252(ANSI),ASCII,iso-8859-1(5)中编码然后你在utf8中拥有所有其他页面时会发生这种错误。 这是一个可怕的错误,可能导致像session_start();不工作。

第四:其他php解决方案:

utf8_encode('£');
htmlentities('£');
echo '&amp;pound;';

第五:javascript解决方案:

document.getElementById('id_goes_here').innerText.replace('£','&amp;pound;');
document.getElementById('id_goes_here').innerText.replace('£',"\u00A3");
$(this).html().replace('£','&amp;pound;'); //jquery
$(this).html().replace('£',"\u00A3"); //jquery
String.fromCharCode('163');

你必须发送£,所以它将修复损坏的编码代码点。 请避免这些解决方案! 用php! 这些解决方案仅显示如何“修复”错误,最后一个只显示编码良好的字符。

答案 3 :(得分:10)

您是否尝试过显示&pound;

Here是一个压倒一切的名单。

答案 4 :(得分:3)

您可以尝试使用&pound;&#163;,而不是直接嵌入角色;如果你直接嵌入它,你更有可能遇到编辑器保存文件的编码问题是ISO-8859-1,但它被解释为UTF-8,反之亦然。

如果要直接嵌入(或其他Unicode字符),请确保实际将文件保存为UTF-8,并像使用Content-Type标题一样设置编码。确保从服务器获取标题存在且正确的文件,以及该文件尚未由Web服务器进行转码。

答案 5 :(得分:2)

或者对于其他代码等价尝试:

&#163;
&pound;

答案 6 :(得分:2)

这适用于所有chrome,IE,Firefox。

在数据库中&gt;表&gt;字段类型。例如设置符号列TO varchar(2) utf8_bin php代码:

$symbol = '£';
echo mb_convert_encoding($symbol, 'UTF-8', 'HTML-ENTITIES');
or 
html_entity_decode($symbol, ENT_NOQUOTES, 'UTF-8');

还要确保将HTML OR XML编码设置为encoding =“UTF-8”

注意:您应该确保数据库,文档类型和php代码都具有相同的编码

如何使用&pound;

更好的解决方案

答案 7 :(得分:1)

您需要以UTF-8编码保存PHP脚本文件,并将<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />保留在HTML中。

对于文本编辑器,我建议使用Notepad++,因为它可以检测并显示文件的实际编码(位于编辑器的右下角),您也可以将其转换。