【发布时间】:2015-01-16 07:40:08
【问题描述】:
我目前正在 Android 上开发一个营销应用程序,该应用程序具有通过 SMS 发送 URL 的功能。因为我使用的是 SMS,所以我想使文本尽可能短,这样就不会被分成几部分。
网址由应用动态生成。不同的联系人会导致不同的 URL,因为应用程序会将一些“联系人相关信息”放到 URL 中。并且此信息需要缩短,而不是基本 URL。
我尝试使用 Base64 来缩短字符串,但它不起作用。
Before
Text: Myself|1234567890
Length: 17
After
Text: TXlzZWxmfDEyMzQ1Njc4OTA=
Length: 25
然后我尝试了Deflater,结果比Base64好,但还是没有缩短字符串。
Before
Text: Myself|1234567890
Length: 17
After
Text: x��,N�I�1426153��4����3��
Length: 24
我也试过GZIP,结果比其他方法差很多。
Before
Text: Myself|1234567890
Length: 17
After
Text: ����������������,N�I�1426153��4�����w��������
Length: 36
比较测试结果后,我决定使用 Base64,因为它有时有效,但我完全不满意。谁能给我一个更好的方法?
编辑:
我需要在没有互联网连接的情况下离线执行此 字符串缩短。对于这种突然的变化,我感到非常抱歉,因为我们的开发团队如此决定。有什么想法吗?
【问题讨论】:
-
字符串缩短方法意味着你只想以编码形式缩短文本??
-
最后两种方法会有开销,这将始终包含在最终结果中。但是,这些方法仅在您压缩大量字符串数据时才有用。对于较小的数量(如您的示例中),最好不要使用它们。
-
@Ando:是的,一个更短的编码版本。你有什么想法吗?
-
你为什么不使用 bit.ly 来创建缩短 url。参考它的 API dev.bitly.com
-
您也可以使用 Google Url sortner API developers.google.com/url-shortener。 stackoverflow.com/questions/18372672/… 是相同的 SO 条目。