我正在尝试在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函数显示它,将其转换为:
&#65533;
我想如果我知道自己在做什么会有所帮助......但我猜这就是为什么我会问这个问题:)
答案 0 :(得分:17)
受过教育的猜测:你在UTF-8编码的页面中有一个ISO-8859-1编码的英镑符号。
确保您的数据处于正确的编码状态,一切正常。
答案 1 :(得分:16)
使用£
。我遇到了同样的问题并使用jQuery解决了它:
$(this).text('&#163;');
$(this).html('&#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 '&pound;';
第五:javascript解决方案:
document.getElementById('id_goes_here').innerText.replace('£','&pound;');
document.getElementById('id_goes_here').innerText.replace('£',"\u00A3");
$(this).html().replace('£','&pound;'); //jquery
$(this).html().replace('£',"\u00A3"); //jquery
String.fromCharCode('163');
你必须发送£,所以它将修复损坏的编码代码点。 请避免这些解决方案! 用php! 这些解决方案仅显示如何“修复”错误,最后一个只显示编码良好的字符。
答案 3 :(得分:10)
您是否尝试过显示£
?
Here是一个压倒一切的名单。
答案 4 :(得分:3)
您可以尝试使用£
或£
,而不是直接嵌入角色;如果你直接嵌入它,你更有可能遇到编辑器保存文件的编码问题是ISO-8859-1,但它被解释为UTF-8,反之亦然。
如果要直接嵌入(或其他Unicode字符),请确保实际将文件保存为UTF-8,并像使用Content-Type
标题一样设置编码。确保从服务器获取标题存在且正确的文件,以及该文件尚未由Web服务器进行转码。
答案 5 :(得分:2)
或者对于其他代码等价尝试:
£
£
答案 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代码都具有相同的编码
如何使用£
答案 7 :(得分:1)
您需要以UTF-8编码保存PHP脚本文件,并将<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
保留在HTML中。
对于文本编辑器,我建议使用Notepad++,因为它可以检测并显示文件的实际编码(位于编辑器的右下角),您也可以将其转换。