2011-04-17 81 views
-2

我怎麼能在我的手機我怎麼能壓縮串iphone

壓縮串像 「AmfkF04njgfdlnre4wp [fnv4s/sif03jgndlkrjrtyuiocvbnjm78dcfghjk89tgb dfgyhuic89vbnyhncvghj8ujmokjnfgbijk98nfgh0978njvcg9h08065yejktgb45ncvghyuitg45hnmpokjnb65yhjcvgf4354g3hjok/mnbcfghjkuh45jcfgh45dfv23bn」(200個charecters)

縮短與短信發送

假設1條短信只能發送170個字符,如果我發送它需要發送的短信2條短信,我想 通過壓縮文本以發送1條短信,只發送1條短信。

我只是想讓字符串變短以便發送,它可能在壓縮後無法讀取。 但解壓後需要保持一致。

我嘗試閱讀this但它沒有幫助我任何事情。

謝謝。

回答

2

如果你想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編碼是給出設計信號的具體答案。如果信號更像是你要發送的真實信號,那麼可以給出更好的答案。

+0

我想jfghirehgirl意味着你好世界5555你好世界谷歌,我可以發送jfghirehgirl到其他設備,他們可以解壓縮jfghirehgirl意味着你好世界5555你好世界谷歌 – MAXZZXAM 2011-04-18 03:03:28

+0

這並沒有實際澄清任何事情;您可以使用像gzip這樣的壓縮算法,通過雙方共享的字典*或*完成該操作。你的意思是「通過電線發送的任意輸入」? – bbum 2011-04-18 04:35:08

+0

是的壓縮文本「jfghirehgirl」可以通過短信或電子郵件發送和reciver可以通過使用壓縮文本解壓縮到「世界你好5555 hello world」。 – MAXZZXAM 2011-04-19 02:50:57