如何在不损坏页面其余部分的情况下将包含表情符号的推文添加到我的页面?



我的数据库存储编码为 utf-8 的数据。

我的网页顶部声明了字符集:

<!DOCTYPE html>
<html lang="en">
<head>    
<meta charset="utf-8">

此网页显示数据库中的字段,其中包含符号 £ 和单词 ᴘʟâce(这是一种不寻常的字体(。这两个都正确显示。

我现在在perl中使用Twitter::API向页面添加推文。

sub {
use Twitter::API;
my $twitteruser=shift;
my $client = Twitter::API->new_with_traits(
traits => 'Enchilada',
consumer_key=>"",
consumer_secret=>"",
access_token=>"",
access_token_secret=>"",
);
$tweets=$client->user_timeline("$twitteruser");
return {Tweets=>$tweets}
}

当我将推文添加到页面时,它们在页面上正确显示,但数据库中的字段已更改,因此 £ 现在显示为 â£,单词 ᴘʟâce 现在显示为á´Êâá´我唯一改变的是添加推文。如果我关闭推文,页面将恢复正常显示。如果我只显示没有奇怪字符的推文,页面就会正确显示。它只显示字体奇怪的推特用户名或推文中的表情符号,这似乎会导致问题。

我检查了显示的标题:content-type: text/html; charset=UTF-8

我发现这个将表情符号/Unicode从Twitter保存到MySQL数据库,它似乎说要将表情符号和Unicode保存到MySQL,表格的字符集和排序规则属性需要更改。但我认为这不是解决方案,因为如果没有将推文添加到页面,则从数据库中提取字符时会正确显示。我还尝试将表情符号粘贴到页面文本中。如果我不显示有问题的推文,它会正确显示。如果我这样做,表情符号将显示为 ð。所以这似乎不是数据库问题。不知何故,将推文添加到页面会损坏页面的其余部分,即使推文显示正确也是如此。

几天来,我一直在用头撞墙。任何人都可以帮助提供一些建议来解决此问题吗?谢谢。

最后通过添加修复它

使用编码"UTF8";

到我的 Perl 子例程。 我不确定为什么这会修复它,但很高兴它做到了。

最新更新