2012-07-12 85 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