在java代码中使用特殊字符是否安全?

时间:2015-06-12 18:48:19

标签: java

我的语言是葡萄牙语,所以我需要编写一个方法façaAlgo(),用葡萄牙语public class YourFilter implements javax.servlet.Filter{ @Override public void doFilter(ServletRequest request,ServletResponse servletResponse , FilterChain chain) throws IOException, ServletException { HttpServletResponse response = (HttpServletResponse ) servletResponse ; response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Headers","Access-Control-Allow-Origin, X-Requested-With", bla,bla...); } } 。 Java允许我在代码中使用特殊字符,但它是否安全?这样做的缺点是什么?或者我可以使用它而不用担心吗?

3 个答案:

答案 0 :(得分:10)

它是有效的Java,但您在以下情况下遇到问题的可能性稍大:

  • 在计算机之间传输源代码
  • 编译
  • 编辑

几乎所有东西都处理ASCII而没有任何问题,并且大多数编码要么与ASCII兼容,要么如果使用ASCII,编辑器会正确猜测。但是,当您开始使用ASCII以外的字符时,您需要确保所有内容都使用相同的编码,否则您最终会使用不同的工具来认为代码中包含不同的字符。

如果 使用非ASCII字符,我建议使用UTF-8作为编码 - 这些天基本上都支持它。确保您使用的IDE在默认情况下使用UTF-8创建新文件,并期望现有文件采用UTF-8格式。然后,如果从命令行进行编译,请使用-encoding命令行参数指定编码。

答案 1 :(得分:3)

简短回答你的问题:是的。见the Oracle tutorial

  

变量名称区分大小写。变量的名称可以是任何合法的      identifier - 无限长度的Unicode字母和序列      数字,以字母开头,美元符号" $"或者      强调字符" "。然而,该公约始终是开始的      你的变量名用一个字母,而不是" $"或" "。另外,      按照惯例,美元符号字符从未使用过。你可以      找到一些自动生成的名称将包含的情况      美元符号,但您的变量名应始终避免使用它。一个      对于下划线字符存在类似的约定;虽然它      在技​​术上合法,以" _",这开始你的变量的名称      不鼓励练习。不允许有空格。

答案 2 :(得分:1)

Java支持源文件中的unicode。如果您将来遇到问题,可以在编译时指定编码。