作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
iOS 存折使用序列号,您的服务器可以使用该序列号来识别特定通行证。
有谁知道存折序列号中哪些字符有效?我知道数字和字母是有效的,但符号/标点符号是否也有效(例如“-”和“.”)?
还有序列号的最大长度是多少?
谢谢。
最佳答案
几乎可以使用任何字符,包括“-”和“.”,只要序列号保持唯一即可。特殊字符(如“\”)需要正确转义,尽管它们可能与您的数据库不兼容,或者如果在代码的其他地方处理不当可能会导致其他问题。
我刚刚尝试使用以下序列号进行通行证并将其添加到 Passbook 中没有任何问题。
"serialNumber":"[]{}-_)(*&^%$#@!`~+=|\\\/?.><,:;"
UTF8 编码的字符也可以:
"serialNumber":"\u9127\u6a02\u611a" // Chinese characters 鄧樂愚
至于最大长度,我不知道有什么限制,尽管实验起来会很简单。
这个400字的连载也可以摄取。
"serialNumber":"0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"
我建议不要对序列号使用任何类型的用户输入,因为这可能会导致非唯一冲突并使您容易受到注入(inject)攻击。如果您更改架构(比如 AWS DynamoDB 之类的 Web 服务解决方案),遵守 XML 标准也不是避免任何问题的坏习惯。对序列号进行 Base64 编码可确保广泛的兼容性。
序列号也可以用来存储通行证中的元数据。
"serialNumber":"UniqueID|data1|data2|data3|etc."
关于iOS 存折序列号 : What characters are valid? 最大长度是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14390351/
我是一名优秀的程序员,十分优秀!