網上查詢得知,這個編碼為2028的字符為行分隔符,會被瀏覽器理解為換行,而在Javascript的字符串表達式中是不允許換行的,從而導致錯誤。
解決方法
把特殊字符轉義替換即可,代碼如下所示:
1
str = str.Replace("\u2028", "\\u2028");
替換後,用之前有問題的文章測試,加載正常,問題解決。
另外,Javascript中的特殊字符一共有13個,建議都進行轉義處理,如下:
Unicode 字符值 轉義序列 含義 類別
\u0008 \b Backspace
\u0009 \t Tab 空白
\u000A \n 換行符(換行) 行結束符
\u000B \v 垂直製表符 空白
\u000C \f 換頁 空白
\u000D \r 回車 行結束符
\u0022 \" 雙引號 (")
\u0027 \' 單引號 (')
\u005C \\ 反斜槓 (\)
\u00A0 不間斷空格 空白
\u2028 行分隔符 行結束符
\u2029 段落分隔符 行結束符
\uFEFF 字節順序標記 空白