2017-05-12 64 views
2

我遇到了一個問題,重定向到AngularJS頁面可以包含非ascii字符作爲查詢參數。AngularJS非ASCII查詢參數

當查詢包含/?id=test%F6test該值立即變成/?id=undefined (按Angular I推測)。

有沒有一個很好的解決方法呢?

+0

我認爲變量越來越未定義,如果您確定變量包含該值並且可用,那麼在追加到查詢之前嘗試urlencode該變量。 –

+0

@ atulquest93該字符被編碼,%F6是瑞典語ö字符在名稱中不常用。 – Jeppz

回答

1

需要將Unicode編碼點編碼爲UTF-8

對於code point \u00F6,編碼它作爲%C3%B6

console.log(window.encodeURI("testötest")); 
 
console.log(window.encodeURI('\u00F6'));

%F6決不出現在有效UTF-8序列。

+0

好吧,顯然在源端有一些問題。我認爲(從未應該)他們正確地編碼它。 – Jeppz