是否存在跨平台方法将字符串编码为另一个字符串而没有任何空格然后将其解码回来?

时间:2012-03-08 21:21:12

标签: c# javascript .net encoding

我正在尝试将一段文本传递给我不拥有的系统,这会将数据传递给我拥有的系统。

不幸的是,当第一个系统与第二个系统通信时,它使用TSV格式。因此,我想知道是否有一种方便的方法来获取我的文本块并以ASCII格式对其进行编码而没有任何类型的空格(当然主要是换行符和制表符),然后再对其进行解码。

当我在进行编码时,我正在使用C#。当我正在进行解码时,我正在使用Javascript。

我意识到我可以通过创建自己的方案来编写自己的代码来实质上“手动”执行编码和解码,但我想知道是否已存在用于此目的。

2 个答案:

答案 0 :(得分:2)

一个选项可能会破坏您的数据大小但真的易于实现:UTF-8编码所有文本,base64编码:

byte[] utf8 = Encoding.UTF8.GetBytes(text);
string base64 = Convert.ToBase64(utf);

不包含任何空格,可以转换回来。它会比原来的字符串大得多,而且不可读......但它会起作用。

答案 1 :(得分:2)

您可以尝试使用HttpUtility.UrlEncode(string)Uri.EscapeDataString(string),这将percent-encode传入文本中的任何空格(以及其他特殊字符,这意味着编码文本可能会更大)比原来的。)

在javascript端,您可以使用decodeURIComponent(string)将其解码回原始文本。