私は HTML5 localStorage を使用するアプリケーションに取り組んでいます。キーが文字列でなければならないという事実以外に、キーに何らかの制限があるかどうかはどこにも見つかりません。
具体的には、localStorage をサポートするすべてのブラウザーで、localStorage のキーとして URL を使用できるかどうかを知りたいです (たとえば、 のような記号を:/?#._-=+@!$%^&*()[]{}|<>
キーで使用することは許可されていますか)。
また、空白文字についてはどうでしょうか? ブラウザ間で localStorage キーに空白文字が許可されますか?
私は見つけたこのトピックただし、localStorage 値 (キーではない) 内の許容可能な文字列のみがテストされているようです。
ベストアンサー1
仕様では、キーと値を型値として設定し、返す必要がありますDOMString
。DOMString は [DOM Level 3 Core][1] で次のように説明されています。
A DOMString is a sequence of 16-bit units.
IDL Definition
valuetype DOMString sequence<unsigned short>;
UTF-16 エンコードは業界で広く使用されているため選択されました。HTML と XML の両方において、ドキュメントの文字セット (したがって数値文字参照の表記) は UCS [ISO/IEC 10646] に基づいています。したがって、ソース ドキュメント内の単一の数値文字参照は、DOMString 内の 2 つの 16 ビット単位 (上位サロゲートと下位サロゲート) に対応する場合があります。文字列比較に関する問題については、「DOM での文字列比較」を参照してください。
Java と ECMAScript の場合、両方の言語ともエンコードとして UTF-16 を使用するため、DOMString は String 型にバインドされます。
したがって、公式には、合法的な UTF-16 文字列はすべてキーまたは値として合法です。ただし、すべての UTF-16 コードポイントが合法的な文字であるわけではないため、「サロゲート ペア」、「バイト オーダー マーク」、「予約文字」などの特定の記号は避ける必要があります。