如何以编程方式将扩展的ascii字符发布到facebook帖子?

时间:2011-04-27 11:29:38

标签: php facebook

我正在尝试将特殊字符发布到Facebook Feed,但是facebook帖子中显示的字符并没有像我预期的那样显示。

$tmp = "αвнιjτυz";

//This code works as I intended, showing "αвнιjτυz" on facebook post
$facebook->api('/me/feed', 'POST', array('message' => $tmp));

//I expect the displayed text in facebook post will be 'вн' but it shows strange characters instead
$facebook->api('/me/feed', 'POST', array('message' => substr($tmp, 1, 2)));

为什么会发生这种情况以及如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

我猜这是你正在使用的unicode。如果是这样substr()将无法使用unicode字符,因为它们用多个字节表示,你需要使用{{1}而不是功能。

mb_substr()

答案 1 :(得分:1)

这是一个老问题,但缺少对Martin问题的后续跟进(以及问题的解决方案)。

您应该将html和php的Content-Type设置为UTF-8。所以在php代码的开头:

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

并使用html:

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