2011-04-27 111 views
0

我試圖將特殊字符發佈到Facebook供稿,但在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 2011-04-27 11:46:11

+0

嘗試過了,它沒有工作。無論如何,我剛剛發現了另一個特定於我的應用程序的解決方案。感謝您的回答:) – Tetrax 2011-04-27 12:36:56

+1

您介意發佈您的解決方案嗎? – Martin 2011-05-04 18:38:47

1

這是一個古老的問題,但缺少對馬丁問題的追蹤(以及對問題的解決方案)。

您應該將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">

相關問題