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

Ste*_*uer 41 html javascript

我试图在HTML中显示英镑符号(来自PHP),但我得到的只是带有问号的符号.

以下是我尝试过的事情.

在PHP中:

header('Content-type: text/html; charset=utf-8');
Run Code Online (Sandbox Code Playgroud)

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

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
Run Code Online (Sandbox Code Playgroud)

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

&amp;#65533;
Run Code Online (Sandbox Code Playgroud)

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

Pek*_*ica 18

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

确保您的数据采用正确的编码,一切正常.


小智 16

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

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


小智 12

1st:磅符号是utf8编码中的"特殊"字符(尝试在iso-8859-1(或iso-8859-15)文件中保存£$,当使用标头编码时你会得到ä)

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

第3名:使用ob_start(); (在PHP)在进行任何输出,如果你得到奇怪的编码错误,就像有时缺少的编码.是的,这解决了!当页面在windows-1252(ANSI),ASCII,iso-8859-1(5)中编码然后你在utf8中拥有所有其他页面时会发生这种错误.这是一个可怕的错误,可能导致像session_start(); 不工作

第四名:其他php解决方案:

utf8_encode('£');
htmlentities('£');
echo '&amp;pound;';
Run Code Online (Sandbox Code Playgroud)

第五名: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');
Run Code Online (Sandbox Code Playgroud)

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


nc3*_*c3b 10

你试过显示一个&pound;吗?

是一个压倒一切的清单.

  • 虽然这很可能会解决它,但它并没有解决问题的根源,这就是为什么我建议Pekka的答案. (2认同)