考虑到您必须在不使用特殊字符的情况下分隔文本,使用 [0-9][az] (0e、0f 等) 是否可以被认为是安全的?
换句话说,在计算机语言和一般文本中,是否有可能(除了哈希值等某些情况)在文本/代码中遇到例如“0e”?
目的是使用这种字母组合的变体来分隔字段。
例如:Field10e字段20e字段3
(条目始终是一行,包含多个字段)
答案1
最初由 Kamil Maciorowski 在上述评论中提出,此答案基于他的反馈。我将把此内容设为社区 wiki,这样我就不会因此获得声誉。
使用数字+字母作为文本的安全分隔符吗?
答案是否定的。字母和数字的组合越短,它成为您想要拆分的单元格之一的内容的可能性就越大。
话虽如此,卡米尔·马乔罗夫斯基还是想出了一个很好的替代方案。
您的目标显然是找到一种好的方法,将多条信息存储在一个表中,其中只有字母、数字和空格可用。
使用转义字符是一种常见的做法。只要在您的字段中出现转义字符,就可以轻松实现这一点。
假设您要创建一个特殊字符:1
,对于您存储在数据集中的每个字段,您将用替换所有出现的1
。11
现在,1
可以用作特殊字符,因为它永远不会仅显示为 1。
因此,要分隔字段,您只需使用_1_
(_ 是一个空格,但为了可见性,写为 _。)
假设您有以下想要存储的数据集,1,12,123
您需要将所有 1 替换为 11,并将无效的分隔符替换为适当的分隔符,即_1_
,您的数据集将如下所示:11 1 112 1 1123
为了再次使用这些数据,首先将文本拆分为一个数组,其中_1_
是分隔符,然后循环遍历数组中的所有条目并将 11 更改为 1,将数组变成1,12,123
。
答案2
不,这不能算作保存。
只需用你自己的问题作为例子。你已经在其中使用了四次序列“0e”。
使用可能是字段内容的内容来分隔字段永远不是一种保存,也不是一个好主意。
通过使用多个字符,你可以使其不太可能与字段内容发生冲突,但你可能不确定将来会在那里存储什么。