由/u2028 unexpected token 引发的思考
如图,有时候拷贝代码的时候,不小心就出现错误。

由/u2028 unexpected token错误 引发的思考

于是查看代码,{}内已经看不到有任何字符了,但其实将鼠标光标焦点放到{}中,按下退格键,居然没有把{这个字符删除,那说明,{}之间确实还有其他字符。
比如“{
}”这里大括号里,就有一个隐藏的特殊字符/u2028。
错误的“{
}”
正确的“{}”
看起来简直一模一样。但是复制下来,用工具进行Unicode编码。

看下图是两种写法的区别,不信,你可以直接复制上面两个{}进行Unicode编码。

错误写法Unicode编码后:

由/u2028 unexpected token错误 引发的思考

正常写法Unicode编码后:

由/u2028 unexpected token错误 引发的思考

看了编码图,很容易看出来区别,正确和错误之间,相差了一个/u2028.这是个什么东西呢?
请参看下表:
Unicode 字符值 转义序列 含义 类别
\u0008 \b Backspace  
\u0009 \t Tab 空白
\u000A \n 换行符(换行) 行结束符
\u000B \v 垂直制表符 空白
\u000C \f 换页 空白
\u000D \r 回车 行结束符
\u0022 \" 双引号 (")  
\u0027 \' 单引号 (')  
\u005C \\ 反斜杠 (\)  
\u00A0   不间断空格 空白
\u2028   行分隔符 行结束符
\u2029   段落分隔符 行结束符
\uFEFF   字节顺序标记 空白


由此可见,以后再遇到莫名其妙的编辑器报错时,然后查代码又查不到明显语法错误,那极有可能是特殊字符在作祟。
可以试试,去特殊字符的方法。
String xx = "goal String".replace("/u2028", "");//将隐藏换行符号去掉
String xx = "goal String".replace(",", ",");//将全角逗号转换半角
String xx = "goal String".replace(".", ".");//将全角点号转换半角
由此可见,以后再遇到莫名其妙的编辑器报错时,然后查代码又查不到明显语法错误,那极有可能是特殊字符在作祟。
可以试试,去特殊字符的方法。
String xx = "goal String".replace("/u2028", "");//将隐藏换行符号去掉
String xx = "goal String".replace(",", ",");//将全角逗号转换半角
String xx = "goal String".replace(".", ".");//将全角点号转换半角

相关文章:

  • 2021-10-04
  • 2018-05-14
  • 2021-11-06
  • 2021-10-19
  • 2021-04-02
  • 2021-09-01
  • 2021-04-27
  • 2021-04-10
猜你喜欢
  • 2022-01-18
  • 2021-06-27
  • 2021-07-28
  • 2018-03-03
  • 2017-12-02
  • 2021-10-31
相关资源
相似解决方案