• ベストアンサー

文字列圧縮_

.  JavaScriptで関数をつくって,全角記号等を含む文字列を,最大限に圧縮するには,どのように記述すればよいでしょうか。  ただし,圧縮後の文字列は,URIencodeしても変化しない,つまりURIに直接挿入できる文字列で,また,http://d.hatena.ne.jp/elm200/?date=20080211§ion=1202730571 のように,最終的に ('')内に文字列を入れる事で圧縮できる形態のものとします。 .

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

まずURLに利用できる文字種を最大限に使って独自のエンコード方式を定義する事ですね。次にBWTなどで前処理した後、既存の圧縮アルゴリズムでデータを圧縮、その後に定義した独自のエンコード方式でデータを符号化・・。といった流れでしょうかね。1から作るのは大変だと思いますよ。でも確かjavascriptで圧縮処理とか暗号化処理とかを作ってた人がいたような。そういうのを利用させてもらえばあれですけど・・ >JavaScriptで関数をつくって,全角記号等を含む文字列を,最大限に圧縮するには,どのように記述すればよいでしょうか。 ここで記述を書く事はスペース的、私のスキル的、及び時間コスト的に無理ですね。

noname#93933
質問者

お礼

ありがとうございました...

noname#93933
質問者

補足

.  投稿ありがとうございます。  結構難しいんですね。  まず,「URLに利用できる文字種を最大限に」とありますが,環境によらず利用できる文字は何でしょうか。 .

その他の回答 (2)

回答No.3

URLで使用できる文字はrfcで定義されいるので普通に実装しているソフトウェアだったら準拠しておけば問題ないでしょうね。未完成なクライアントを使っているような場合も考えたら、どんな環境でもというのは無理ですけど、普通は変な実装したものは使わないでしょうし。 http://kanonji.blog4.fc2.com/blog-entry-138.html

noname#93933
質問者

お礼

ありがとうございました...

noname#93933
質問者

補足

_

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

>どのように記述すればよいでしょうか。 非常にめんどうそうな話ですね 基本的にjavascriptでgetの文字列を「圧縮」するのはやめておいた 方がよいでしょう なんらかの制限でgetを利用する必要があるなら 単純にURIエンコードするなりPOSTでおくれなりすればよいのでは?

noname#93933
質問者

お礼

ありがとうございました...

noname#93933
質問者

補足

.  早速の投稿ありがとうございます。  GETしか使えない状況で,かつ文字数にも制限がある環境のため,POSTは利用できず,通常のURIencodeでもオーバーしてしまうわけです。  質問文に掲載したサイトのScriptよりも圧縮率を高くする方法がもしあればお願いします! .

関連するQ&A