2011-04-27 2 views
0

Я пытаюсь отправить специальные символы в фид, но персонажи, показанные в сообщении facebook, не отображаются так, как я предполагал.Как программно отправить расширенный символ ascii на пост в 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))); 

Любые идеи, почему это происходит и как решить эту проблему?

ответ

1

Я предполагаю, что это unicode, в котором вы работаете. Если так substr() не будет работать с символами Unicode, поскольку они представлены с несколькими байтами, вам нужно будет использовать функцию mb_substr().

$facebook->api('/me/feed', 'POST', array('message' => mb_substr($tmp, 1, 2))); 
+0

Также 'mb_internal_encoding ('UTF-8')' – Ethan

+0

Пробовали и не Работа. Во всяком случае, я только что нашел другое решение, характерное для моего приложения. Спасибо за ваши ответы :) – Tetrax

+1

Не могли бы вы разместить свое решение? – Martin

1

Это старый вопрос, но отсутствует последующее рассмотрение вопроса Мартина (и решение вопроса).

Вы должны установить Content-Type как html, так и php для UTF-8. Так что в начале кода PHP:

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

И с HTML:

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

Смежные вопросы