2011-09-22 59 views
3

請讓我知道「相冊名稱」的最大數量。當字符是日文時,相冊名稱被損壞

現在我正在使用Graph API開發Photo Upload應用程序。 創建相冊時,如果日文字符的數量超過21,則相冊名稱會損壞。 下面是此問題的示例。

例如
輸入:
あいうえおかきくけこあいうえおかきくけこあい
註冊專輯名稱:
あいうえおかきくけこあいうえおかきくけこあ

注意,如果超過21韓國出現了同樣的問題或中文字符被設置爲相冊名稱。

+0

在此處記錄日誌:http://developers.facebook.com/bugs – bkaid

回答

2

看起來這個字段有長度限制。猜測他們正在使用UTF-8,它將是一個64字節的限制,而不是整數個字符。

Facebook似乎在該字節數處截斷字符串,無論該字節限制是否與字符邊界對齊。不幸的是,這種不正常的行爲在語言中並不像Unicode字符那樣處理文本字符串。在你的情況下,最後一個佔用三個字節,但只有兩個空間,所以你留下兩個尾部字節不構成一個有效的UTF-8序列,因此��

要阻止這種情況的發生,你必須爲他們完成工作,並以Unicode清理方式強制限制長度。一種方法是自己編碼爲UTF-8,進行截斷,然後轉換回忽略無效結束字節的字符。例如在Python中:

>>> print u'あいうえおかきくけこあいうえおかきくけこあい'.encode('utf-8')[:64].decode('utf-8', 'ignore') 
あいうえおかきくけこあいうえおかきくけこあ 
+0

謝謝您的回答。 我得到了這個問題的規範和限制。 我會通過檢查字節數來處理這個問題。 –