由/u2028 unexpected token错误 引发的思考
2017-07-21 10:57
225 查看
由/u2028 unexpected token 引发的思考
如图,有时候拷贝代码的时候,不小心就出现错误。
于是查看代码,{}内已经看不到有任何字符了,但其实将鼠标光标焦点放到{}中,按下退格键,居然没有把{这个字符删除,那说明,{}之间确实还有其他字符。
比如“{ }”这里大括号里,就有一个隐藏的特殊字符/u2028。
错误的“{ }”
正确的“{}”
看起来简直一模一样。但是复制下来,用工具进行Unicode编码。
看下图是两种写法的区别,不信,你可以直接复制上面两个{}进行Unicode编码。
错误写法Unicode编码后:
正常写法Unicode编码后:
看了编码图,很容易看出来区别,正确和错误之间,相差了一个/u2028.这是个什么东西呢?
请参看下表:
由此可见,以后再遇到莫名其妙的编辑器报错时,然后查代码又查不到明显语法错误,那极有可能是特殊字符在作祟。
可以试试,去特殊字符的方法。
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(".", ".");//将全角点号转换半角
如图,有时候拷贝代码的时候,不小心就出现错误。
于是查看代码,{}内已经看不到有任何字符了,但其实将鼠标光标焦点放到{}中,按下退格键,居然没有把{这个字符删除,那说明,{}之间确实还有其他字符。
比如“{ }”这里大括号里,就有一个隐藏的特殊字符/u2028。
错误的“{ }”
正确的“{}”
看起来简直一模一样。但是复制下来,用工具进行Unicode编码。
看下图是两种写法的区别,不信,你可以直接复制上面两个{}进行Unicode编码。
错误写法Unicode编码后:
正常写法Unicode编码后:
看了编码图,很容易看出来区别,正确和错误之间,相差了一个/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(".", ".");//将全角点号转换半角
相关文章推荐
- 由一个函数引发的改进思考
- 团队离职引发的思考
- 由QTP引发的一些思考
- 做YH更新,引发众多思考.
- 1*1 引发的思考
- 智力问题引发的哲学思考
- Hibernate的save(transientInstance)引发的持久化对象三种状态思考
- 由scanf() 和 fgets() 引发的思考
- 产品模板化与系统边界引发的思考
- 由一个问题引发的思考
- 由《网易面试OC多线程题目》引发后续的思考
- 性能测试java协议使用httpclient方法引发的思考
- JPA,EclipseLink 缓存机制学习——树节点搜索问题引发的思考
- LPCSTR引发的思考
- 多线程中简单的++操作,所引发的思考
- copy on write引发的思考
- 机械公敌引发的人工智能思考
- 一个截取字符串函数引发的思考
- 让思考成为一种习惯:一张成绩表引发的思考