\u2028是一个神奇的字符,是行分隔符,会被浏览器理解为换行,而在Javascript的字符串表达式中是不允许换行的,从而导致错误。
浏览器上表现为一个小点,并且在编辑器里并不会显示出来,浏览器也不会加以解析
解决
把特殊字符转义替换即可
str = str.replace("\u2028", "\\u2028");
替换后测试,加载正常,问题解决。
unicode 中的特殊字符部分展示如下,建议都进行转义处理
Unicode | 字符值 | 转义序列 | 含义 | 类别 |
\u0008 | \b | Backspace | ||
\u0009 | \t | Tab | 空白 | |
\u000A | \n | 换行符(换行) | 行结束符 | |
\u000B | \v | 垂直制表符 | 空白 | |
\u000C | \f | 换页 | 空白 | |
\u000D | \r | 回车 | 行结束符 | |
\u0022 | " | 双引号 (") | ||
\u0027 | \‘ | 单引号 (‘) | ||
\u005C | |反斜杠 () | |||
\u00A0 | 不间断空格 | 空白 | ||
\u2028 | 行分隔符 | 行结束符 | ||
\u2029 | 段落分隔符 | 行结束符 | ||
\uFEFF | 字节顺序标记 | 空白 |