gpt4 book ai didi

unicode - 当字符是日语时专辑名称会被损坏

转载 作者:行者123 更新时间:2023-12-02 20:47:20 24 4
gpt4 key购买 nike

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

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

例如
输入:
あいうえおかきくけこあいうえおかきくけこあい
注册专辑名称:
あいうえおかきくけこあいうえおかきくけこあ��

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

最佳答案

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

Facebook 似乎会按照该字节数截断字符串,无论该字节限制是否恰好与字符边界对齐。不幸的是,这种错误行为在本身不将文本字符串处理为 Unicode 字符的语言中很常见。在您的情况下,最后一个 占用三个字节,但只有两个字节的空间,因此您会留下两个不形成有效 UTF-8 序列的尾随字节,因此 � �.

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

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

关于unicode - 当字符是日语时专辑名称会被损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7512379/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com