首页 > 解决方案 > 如何在不破坏页面其余部分的情况下将包含表情符号的推文添加到我的页面?

问题描述

我的数据库存储编码为 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,表的字符集和排序规则属性需要更改。但我认为这不是解决方案,因为如果未将推文添加到页面,则从数据库中提取字符时会正确显示字符。我还尝试将表情符号粘贴到页面文本中。如果我不显示问题推文,它会正确显示。如果我这样做,表情符号将显示为ð。所以这似乎不是数据库问题。不知何故,将推文添加到页面会破坏页面的其余部分,即使推文显示正确。

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

标签: perltwittercharacter-encoding

解决方案


最后通过添加修复它

使用编码“utf8”;

到我的 perl 子程序。我不确定为什么要修复它,但很高兴它确实修复了。


推荐阅读