1. ホーム
  2. javascript

[解決済み] エスケープされたUnicodeを含む文字列をデコードするにはどうしたらいいですか?

2022-11-07 22:20:34

質問

この呼び名がよくわからないので、検索に困っています。からunicodeで文字列をデコードするにはどうしたらいいのでしょうか? http\u00253A\u00252F\u00252Fexample.com から http://example.com をJavaScriptで作成することはできますか?試しに unescape , decodeURI そして decodeURIComponent となっているので、あとは文字列の置換だけでしょうか。

EDIT: 文字列はタイプされたものではなく、別のコードから得た部分文字列です。ですから、問題を解決するには、このようなものから始める必要があります。

var s = 'http\\u00253A\\u00252F\\u00252Fexample.com';

なぜunescape()が機能しないのかが分かると思います。

どうすれば解決するのでしょうか?

編集 (2017-10-12) :

@MechaLynx と @Kevin-Weber は次のように記しています。 unescape() は非ブラウザ環境では非推奨で、TypeScript には存在しないことに注意してください。 decodeURIComponent が代替となります。より広い互換性のために、代わりに下記を使用してください。

decodeURIComponent(JSON.parse('"http\\u00253A\\u00252F\\u00252Fexample.com"'));
> 'http://example.com'

オリジナルの回答です。

unescape(JSON.parse('"http\\u00253A\\u00252F\\u00252Fexample.com"'));
> 'http://example.com'

にすべての作業をオフロードすることができます。 JSON.parse