Сжатие текста в JavaScript - PullRequest
5 голосов
/ 22 июля 2011

Есть ли библиотеки / и т.д. которые реализуют легкое сжатие текста в JavaScript?

Моя настоящая цель - немного укоротить текст и сделать его незаметным с первого взгляда. (Это не должно обеспечивать безопасность - текст будет отображаться для пользователя.) В идеале сжатие можно настроить так, чтобы выводить только символы запроса

[-._~!$&'()*+,;=:@/?a-zA-Z0-9]

, чтобы его можно было передать в URL. (На самом деле, это очень важно - если используются другие символы, они должны быть закодированы в процентах, что, вероятно, сделает текст больше оригинала.) Конечно, при необходимости редкие символы могут быть закодированы в процентах.

Есть идеи? В противном случае, предложения по созданию простого? Сжатие не должно быть хорошим, но более короткие URL-адреса были бы лучше. Текст, который должен быть сжат, должен быть английскими предложениями: в основном строчными буквами, пробелами и пунктуацией со случайными заглавными буквами, цифрами и переводами строки.

Ответы [ 3 ]

5 голосов
/ 02 мая 2014

Я нашел lz-string , который идеально подходит для моих нужд. Он быстро сжимает и распаковывает текст и может нацеливать необработанные биты, допустимые символы Unicode или Base64. Возможно, это будет полезно для кого-то еще?

2 голосов
/ 22 июля 2011

Я тоже думал о сжатии Хаффмана.Эта библиотека javascript действительно хороша: http://rumkin.com/tools/compression/compress_huff.php. Она имеет действительно экономящий место способ сжатия и распаковки каждого символа.Может быть, вы тоже хотите найти код Голомба.У него примерно такая же степень сжатия, как у Хаффмана, но IMO его проще реализовать.Не спрашивайте меня о примере.

2 голосов
/ 22 июля 2011

Сначала я подумал о сжатии Хаффмана , и из быстрого поиска в Google я нашел следующее:

http://tom -ash.net / блоги / Blog.aspx? File = Программирование / 20090602_HuffmanCompression.blog

У которого есть рабочий пример.

Не уверен, что он будет соответствовать вашим потребностям, но это место для начала.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...