我包含了@、|、~等特殊字符,但它们也作为数据出现在某些值中,这破坏了我稍后在代码中加入和拆分值的想法。
在任何语言中,不存在任何“最安全”和“最可靠”的分隔符来连接字符串,而不仅仅是 JavaScript。
这完全取决于您的数据集,这意味着对于每个不同的数据集,“最安全”的选择都会有所不同。
例如,如果您的数据集保证只包含整数,那么任何非数字字符都可以是最安全的选择。
但是,如果您的数据集是自由文本,则不会有“最安全”的选择,因为即使您选择任意字符串组合作为分隔符,即
%%%
,最终用户仍然可以在像My preferred pronoun is "%%%"
这样的合法句子,尽管可能性很小。因此,在这里使用 %%%
作为分隔符仍然会破坏你的逻辑。
因此,您只能选择风险最小的分离器。
根据您的用例,可能还有其他不需要分隔符的更简单的解决方案。
通常,如果您稍后需要再次分离字符串,我们会避免连接字符串,序列化数据的 JSON 表示法通常是一个很好的折衷方案,并且具有最佳的互操作性。
CSV 也可以很好地工作,但不要只插入逗号,请确保在需要时正确转义值。
如果 JSON 或 CSV 不合适,那么使用特殊字符序列更有可能是唯一的,您可以使用
||
(双管道),因为除了基于 C 的代码之外,这种情况不太可能出现在任何内容中。
您可以使用其他特殊字符,但我会避免使用
$
或 %
,因为这些字符通常用于替换令牌。还要避免使用任何形式的支架,因为它们用于其他基于容器的替换。
使用多个符号的 3 字符代码再次更加独特
|:|
只需选择视觉上看起来像值之间的屏障并且不能与标记混淆的东西即可。
我使用随机unicodes这使得它不太可能引起任何问题,除非你受到损害,如果是这样,那就不再重要了。