2016-12-14 9 views
0

私は、圧縮したい長い文字列(16200文字)を束ねています。文字列全体では12種類の文字しか使用されません(現在は_oOwWgGmdDsSですが、必要に応じて変更できます)。テキストを単純なテキストに圧縮する

私はこの文字列を圧縮しようとしています。私は現在、私が最初にキャラクターを置くたびに、それが別のものがストリングに入る前に何回出現するかという、自分自身で圧縮スキームを作った。圧縮されていないテキストは次のようになりますのであれば:

ooooooWW_ 

その後、圧縮されたが、私は現在、これを約128メガバイトから4メガバイトまでのサイズを縮小している文字列の

o6W2_1 

になります。しかし、あなたが見ることができるように、Wのために貯蓄はありません、そして、_にも損失があります。

私は、もっと洗練された圧縮方式が使えるのだろうかと疑問に思っていましたか?最終結果はバイナリデータではなくプレーンテキストでなければなりません。

注:PythonとLuaの両方に対応するライブラリが存在する場合は素晴らしいでしょう。

+1

「1」を追加する必要はありません。あなたのデコーダは、数字が別の文字の後に来なければ、その文字は一度しか現れないと想定することができます。 –

答えて

1

zlibを使用してバイナリに圧縮し、次にbase64を使用してバイナリをプレーンテキストに展開します。 Pythonには両方とも組み込まれています。ちょっとした検索でzlibとbase64コードのLuaバインディングが生成されます。

関連する問題