2010-11-25 9 views
0

'と一緒に特殊文字(例:日本語の文字)をエンコードすることを検討しています。 encodeURIComponent()は特殊文字をエンコードしますが、'はエンコードしません。 ?エンコードするすべての組み込みJavascript関数 '?

(すなわち符号化する日本の文字だけでなく、'の両方を行い、任意の作り付けのJavascript機能

+3

あなたはどんな種類のエンコーディングを探していますか? – Gumbo

+0

'encodeURIComponent'は' ''をエンコードする必要はありません。なぜなら、これはURIの有効な文字だからです。なぜあなたは '' 'をエンコードしたいのですか? – RoToRa

+0

私は*すべての*特殊文字を文字セットで安全な関数でエンコードしたいと思います。 ''は既に '' 'を含む文字列と衝突します。 – pavanlimo

答えて

1

escapeunescapeを試してみてください


更新:OK、エスケープ/アンエスケープ優しいI18Nされていません。あなたはencodeURIComponentと言っていますが、ほとんどの方法がありますが、いくつかの文字、つまり'が欠けています。encodeURIComponentを使用するヘルパー関数utf8escapeを作ることができますが、残りの文字はエスケープするために'

<html><head><title></title> 
     <script> 
      function utf8escape(s) { 
       s = encodeURIComponent(s); 
       s = s.replace(/'/, '%27'); 
       return s; 
      } 
      function enc() { 
       var f1 = document.getElementById("f1"); 
       f1.value = utf8escape(f1.value); 
      } 
      function dec() { 
       var f1 = document.getElementById("f1"); 
       f1.value = decodeURIComponent(f1.value); 
      } 
     </script> 
    </head> 
    <body> 
     <input type="text" id="f1" name="f1" size="80"/><br/> 
     <button onclick="enc()">Encode</button> 
     <button onclick="dec()">Decode</button> 
    </body> 
</html> 

この実装は非効率的かもしれませんが、あなたは一般的な考えを得るでしょう。

+0

残念ながら、これらの2つの関数は文字セットセーフではありません。 I18Nではうまくいかない。 – pavanlimo

+0

私はあなたに@Mykeをあまり得ていませんでした。 – pavanlimo

+0

@pavanlimo:申し訳ありませんが、私はタイプミスがありました。私は自分の答えを更新しました。うまくいけばそれは関連して有用である。 –

関連する問題