JavaScript でエンコードされた Unicode 文字列をデコードする
エンコードされた Unicode 文字を含む文字列を操作する場合、それらを適切にデコードするのは困難な場合があります。この記事では、エスケープされた Unicode 文字でエンコードされた文字列のデコードの問題について説明します。
質問で説明されている特定の問題には、httpu00253Au00252Fu00252Fexample.com に似た文字列が関係しています。 unescape、decodeURI、decodeURIComponent などのさまざまな方法を試した後、推奨される解決策は文字列置換を使用することです。
ただし、初期条件を考慮することが重要です。次の例に示すように、問題の文字列は直接型指定されていませんが、コードの別の部分から取得された部分文字列です。
var s = 'http\u00253A\u00252F\u00252Fexample.com';
これは、unescape() が期待した結果を生成しない理由を説明しています。
このような文字列をデコードする鍵は、JSON.parse を利用することにあります。エンコードされた文字列を二重引用符で囲んで JSON として解析することにより、ブラウザーは自動的に Unicode 文字をデコードします。次の例は、このアプローチを示しています。
unescape(JSON.parse('"http\u00253A\u00252F\u00252Fexample.com"')); // Output: 'http://example.com'
この場合、unescape() を使用して、残っている可能性のあるエスケープ シーケンスを削除します。 unescape() はブラウザ以外の環境では非推奨であり、TypeScript には存在しないことに注意してください。より広範な互換性を確保するには、代わりに decodeURIComponent を使用することをお勧めします。
以上がJavaScript でエスケープされた Unicode 文字列をデコードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。