【问题标题】:Is there cross-platform method to encode a string into another string without any whitespaces and then decode it back?是否有跨平台方法将一个字符串编码为另一个没有任何空格的字符串,然后将其解码回来?
【发布时间】:2012-03-09 05:56:26
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: c# javascript .net encoding


    【解决方案1】:

    一个选项会增加数据的大小,但真的很容易实现:UTF-8 编码所有文本,base64 编码:

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-11-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-15
        相关资源
        最近更新 更多