2011-09-22 61 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

谢谢您的回答。 我得到了这个问题的规范和限制。 我会通过检查字节数来处理这个问题。 –