【发布时间】:2011-02-09 18:31:22
【问题描述】:
问题:就程序稳定性和确保系统实际运行而言,使用¦、§ 或‡ 等字符在字符串?我是否可以相信我不会在错误读取这些内容的程序中遇到任何问题?
我在一个系统中工作,使用 C# 代码,我必须在一个字符串中存储一组相当复杂的信息。该字符串的可读性仅在计算机端是必需的,最终用户只能在通过适当的方法解析后才能看到信息。因为这些字符串中的一些数据将是可变大小的集合,所以我使用不同的分隔符来标识字符串的哪些部分对应于某个组织层。有足够多的情况表明,标准集;、| 和类似的东西已经用尽了。我考虑过两个字符的分隔符,例如;# 或;|,但我觉得这样效率很低。一个字符存储与两个字符存储的性能差异可能那么大,但是当我可以选择较小的选项时,选择较大的选项感觉不对。
所以最后,我考虑使用像双匕首和节这样的字符集。它们只占用一个字符,而且它们绝对不会出现在我将要存储的实际文本中,因此它们不会被任何东西混淆。
但是字符编码很挑剔。虽然对最终用户的可见性毫无意义(因为他们实际上不会看到它),但我最近开始担心系统中的程序将如何读取它。字符串存储在一个数据库中,而一个单独的程序负责将字符串编码和解码为不同的对象类型,以供应用程序的其余部分使用。如果某些东西预计会以一种方式编写,可能会以另一种方式编写,那么可能整个系统都会失败,我真的不能让这种情况发生。那么将这些字符用作背景分隔符是否安全?
【问题讨论】:
标签: c# string unicode delimiter