在Facebook墙上发贴希伯来文+英文文字,文字混淆了

时间:2012-07-12 15:03:14

标签: java facebook

我使用我的java代码在我的FB墙上张贴:

FacebookType publishMessageResponse = facebookClient.publish(
    connection,
    FacebookType.class,
    Parameter.with(
        "message",
        fbMessageData.getRecipeOwnerName() +
            " posted " +
            fbMessageData.getRecipeName()
    )
);

消息应该是:Yoav posted מתכון,但是,它会像这样发布:מתכון Yoav posted。食谱名称מתכון。食谱名称可以是英语或希伯来语(UTF-8)。

关于如何保持订单的任何想法?

2 个答案:

答案 0 :(得分:0)

您是否尝试过使用其中一个Unicode BiDi_Control字符?将它放在食谱名称前面或周围......

http://en.wikipedia.org/wiki/Bi-directional_text

答案 1 :(得分:0)

你应该在发送到fb之前使用json_encode然后是json_decode,它可以解决问题:

$album_details = array(
  'message'=> 'Live photos from our app',                      
  'name'=> $title, // This can be any non-english characters that can be in unicode
  'access_token'=>$pageAccessToken
);

$jsonStr = json_encode($album_details);
$decoded_album_settings = json_decode($jsonStr, true);

$create_album = $this->facebook->api('/'.$this->facebookPageId.'/albums', 'post', $decoded_album_settings);

这个想法来自这里:https://stackoverflow.com/a/3806967/1200166