如果你想jfghirehgirl
意思Hello world 5555 hello world google
,那麼你可以只使用一個哈希或字典:
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys: @"Hello world 5555 hello world google", @"jfghirehgirl", nil];
然後,擡頭jfghirehgirl
會給你原來長的字符串。
一個經典的替代壓縮。
如果你想要一個算法轉換,gzip是關於最容易訪問的通用壓縮算法。它也恰好被大多數常用協議「支持」。鑑於缺乏背景,很難說更多。
OK - 終於 - 一個具體的問題:
像 「AmfkF04njgfdlnre4wp [fnv4s/sif03jgndlkrjrtyuiocvbnjm78dcfghjk89tgb dfgyhuic89vbnyhncvghj8ujmokjnfgbijk98nfgh0978njvcg9h08065yejktgb45ncvghyuitg45hnmpokjnb65yhjcvgf4354g3hjok/mnbcfghjkuh45jcfgh45dfv23bn」 (200 charecters)
這看起來一個很可怕,就像你在鍵盤上敲擊一樣。即那裏沒有信號;它是白色的噪音。白噪音本身不會壓縮。
果然,複製這一點,在終端這樣做:
pbpaste | gzip --best -f | wc -c
121
息率121個字符。你可能會認爲200 - > 121是不錯的壓縮。它不是;這只是字符壓縮的位。由於SMS的字符集有限,因此無法使用結果。所以,你需要使用類似base64的東西將其編碼回ASCII。
即:
pbpaste > /tmp/foo
python
>>> x = file('/tmp/foo','r').read()
>>> len(x)
121
>>> y = b64encode(x)
>>> len(y)
164
164個字符。不錯;也許甚至可以使用(除非你不能在iPhone上以編程方式讀取或編寫SMS消息,但用戶可以複製/粘貼)。
所以 - gzip,然後base64編碼是給出設計信號的具體答案。如果信號更像是你要發送的真實信號,那麼可以給出更好的答案。
我想jfghirehgirl意味着你好世界5555你好世界谷歌,我可以發送jfghirehgirl到其他設備,他們可以解壓縮jfghirehgirl意味着你好世界5555你好世界谷歌 – MAXZZXAM 2011-04-18 03:03:28
這並沒有實際澄清任何事情;您可以使用像gzip這樣的壓縮算法,通過雙方共享的字典*或*完成該操作。你的意思是「通過電線發送的任意輸入」? – bbum 2011-04-18 04:35:08
是的壓縮文本「jfghirehgirl」可以通過短信或電子郵件發送和reciver可以通過使用壓縮文本解壓縮到「世界你好5555 hello world」。 – MAXZZXAM 2011-04-19 02:50:57