我正在尝试将特殊字符发布到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)));
为什么会发生这种情况以及如何解决这个问题?
答案 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">