2012-07-12 39 views
0

我對我的FB牆壁用我的java代碼發佈:發佈希伯來語+英文文字,詞弄混

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

的消息應該是:Yoav posted מתכון,但是,它被張貼這樣的: מתכון Yoav postedמתכון是配方名稱。食譜名稱可以是英文或希伯來文(UTF-8)。

關於如何保持訂單的任何想法?

+0

據我所知,這是一個Web瀏覽器通常如何顯示混合的LTR和RTL文本。您是否已將Facebook的顯示語言更改爲希伯來語,以查看它是否以希伯來語正確顯示? – 2012-07-12 15:54:46

+0

不,因爲它需要顯示相同的英語或希伯來語fb視圖 – user1136875 2012-07-12 16:16:09

回答

0

您是否嘗試過使用Unicode BiDi_Control字符之一?發送到fb之前把它在或在你的食譜名前...

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

+0

把\ u200F名稱前後? – user1136875 2012-07-12 15:30:46

+0

我曾嘗試在帖子的開頭放置\ u200F或\ u200E,但它不起作用 – user1136875 2012-07-12 15:44:09

+0

我不能告訴你,Facebook是否允許這些字符通過,或者可能會將其濾除。也許應該先檢查一下,看看實際的DOM。 – CBroe 2012-07-12 15:50:06

0

你應該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