From 0de0fb19e6e8aae872ef2be6ca128e1fab8fb3bf Mon Sep 17 00:00:00 2001 From: Nick Date: Thu, 31 May 2018 12:12:51 -0400 Subject: [PATCH 1/2] fix: Handle bad input strings to decodeURIComponent closes https://github.com/node-modules/urlencode/pull/18 --- .gitignore | 2 ++ src/index.ts | 6 +++++- test/urlencode.test.ts | 1 + 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index fa7b903..6967aa0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,7 @@ lib-cov coverage/ +.idea/ + *.seed *.log *.csv diff --git a/src/index.ts b/src/index.ts index 4c41ed4..56b1c3b 100644 --- a/src/index.ts +++ b/src/index.ts @@ -38,7 +38,11 @@ export default encode; export function decode(str: string, charset?: string | null) { if (!charset || isUTF8(charset)) { - return decodeURIComponent(str); + try { + return decodeURIComponent(str); + } catch { + return str; + } } const bytes = []; diff --git a/test/urlencode.test.ts b/test/urlencode.test.ts index b4bfbb1..ba8b169 100644 --- a/test/urlencode.test.ts +++ b/test/urlencode.test.ts @@ -37,6 +37,7 @@ describe('urlencode.test.js', () => { 'gbk', '苏千,nodejs。!@#¥%……&**(&*)&)}{|~~!@+——?、》《。,“‘:;|、】【}{~·中文', ], + ['bad% string', 'utf8', 'bad% string'] ]; decodeItems.forEach(item => { From 7720132b11ac0c9bab8dafc4299f648bf7111518 Mon Sep 17 00:00:00 2001 From: fengmk2 Date: Sat, 28 Oct 2023 21:24:03 +0800 Subject: [PATCH 2/2] f --- test/urlencode.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/urlencode.test.ts b/test/urlencode.test.ts index ba8b169..31d9ecb 100644 --- a/test/urlencode.test.ts +++ b/test/urlencode.test.ts @@ -37,7 +37,7 @@ describe('urlencode.test.js', () => { 'gbk', '苏千,nodejs。!@#¥%……&**(&*)&)}{|~~!@+——?、》《。,“‘:;|、】【}{~·中文', ], - ['bad% string', 'utf8', 'bad% string'] + [ 'bad% string', 'utf8', 'bad% string' ], ]; decodeItems.forEach(item => {