首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当字符为日语时,专辑名称会损坏

问当字符为日语时,专辑名称会损坏
EN

Stack Overflow用户
提问于 2011-09-22 17:15:19
回答 1查看 364关注 0票数 3

请告诉我“专辑名称”的最大数量。

现在我正在用Graph API开发照片上传应用程序。创建相册时,如果日语字符数超过21,则相册名称会损坏。下面是这个问题的示例。

例如:

输入:

あいうえおかきくけこあいうえおかきくけこあい

已注册相册名称:

あいうえおかきくけこあいうえおかきくけこあ��

请注意,如果将超过21个朝鲜语或中文字符设置为专辑名称,也会出现同样的问题。

EN

回答 1

Stack Overflow用户

发布于 2011-09-23 22:10:58

看起来这个字段有长度限制。猜测他们使用的是UTF-8,这将是64字节的限制,而不是整数个字符。

Facebook似乎正在截断该字节数的字符串,而不管该字节数限制是否恰好与字符边界对齐。不幸的是,这种错误行为在不将文本字符串本机处理为Unicode字符的语言中很常见。在本例中,最后一个い占用了三个字节,但只有两个字节的空间,因此留下了两个尾部字节,这两个字节不能形成有效的UTF8序列,因此是��。

为了阻止这种情况的发生,你必须为他们做他们的工作,并以一种Unicode干净的方式施加长度限制。要做到这一点,一种方法是自己编码为UTF-8,执行截断,然后转换回字符,忽略无效的结束字节。例如在Python中:

代码语言:javascript
复制
>>> print u'あいうえおかきくけこあいうえおかきくけこあい'.encode('utf-8')[:64].decode('utf-8', 'ignore')
あいうえおかきくけこあいうえおかきくけこあ
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7512379

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档