在字符串中使用随机Unicode来表示复杂的分隔符序列是否安全?

Gra*_*ote 2 c# string unicode delimiter

问:在程序稳定性,并确保该系统将实际操作来讲,如何安全是它使用字符像¦,§在复杂的字符串分隔符序列?我是否可靠地相信我不会在阅读这些错误的程序中遇到任何问题?


我在一个使用C#代码的系统中工作,我必须在一个字符串中存储一组相当复杂的信息.该字符串的可读性仅在计算机端是必需的,最终用户只有在通过适当的方法解析后才能看到该信息.因为这些字符串中的某些数据将是可变大小的集合,所以我使用不同的分隔符来标识字符串的哪些部分对应于某个组织层.有足够的情况,标准集;,|和类似的同类已经用尽.我考虑过两个字符分隔符,比如;#或; |,但我觉得它效率很低.使用一个字符与两个字符存储时,可能没有那么大的性能差异,但是当我可以选择选择较小的选项时,选择较大的选项会感觉不对.

最后,我考虑使用像双匕首和部分这样的字符集.他们只占用一个字符,而且它们肯定不会出现在我将要存储的实际文本中,因此它们不会被混淆.

但字符编码很挑剔.虽然对最终用户的可见性毫无意义(因为他们实际上看不到它),但我最近担心系统中的程序将如何读取它.该字符串存储在一个数据库中,而一个单独的程序负责将字符串编码和解码为不同的对象类型,以供其他应用程序使用.如果预期某种方式会写一些东西,可能是另一种方式,那么也许整个系统都会失败,我不能真的让它发生.那么使用这些字符作为背景分隔符是否安全?

Red*_*ter 5

因为你必须用字符串对数据进行编码,所以我认为这是因为你正在与其他系统连接.为什么不使用像XMLJSON这样的东西而不是发明自己的数据格式?

使用XML,您可以指定正在使用的编码,例如:

<?xml version="1.0" encoding="UTF-8"?>
Run Code Online (Sandbox Code Playgroud)