用安全字符替换字符,反之亦然

时间:2013-07-22 10:32:18

标签: string replace

这是我的问题:

我需要将句子存储在“某处”(在哪里无关紧要)。 句子不得包含空格。 当我从“某处”提取句子时,我需要恢复空格。

因此,在存储句子“我很高兴”之前,我可以用安全字符替换空格,例如&amp ;.在C#中:

theString.Replace(' ', '&');

这会产生'我和我快乐'。

在检索句子时,我会反过来说:

theString.Replace('&', ' ');

但如果原始句子已包含'&'怎么办?字符?

说我会对“我很开心”这句话做同样的事情。健康'。通过上面的设计,字符串会以'我快乐健康'的形式回归,因为'&' char已被空格所取代。 (当然,我可以将&字符更改为更不可能的符号,例如¤,但我希望这可以防弹)

我曾经知道如何解决这个问题,但我忘记了。

有什么想法吗?

谢谢! 弗雷德里克

1 个答案:

答案 0 :(得分:1)

也许您可以使用网址编码(percent encoding)作为灵感。

通过写入%XX来转义在网址中无效的字符,其中XX是表示字符的数字代码。 %符号本身也可以以相同的方式进行转义,这样您在将其转换回原始字符串时就不会遇到问题。

可能还有其他类似的编码,对于您自己的应用程序,您可以使用&%一样,但是通过使用这样的现有编码,您也可以找到现有的编码函数为你做编码和解码。