在什么情况下这样的unicode程序不应该运行?

时间:2014-01-09 06:06:55

标签: java unicode bluej

这是我的bluej ide

中的java代码
\u0070\u0075\u0062\u006c\u0069\u0063\u0020\u0063\u006c\u0061\u0073\u0073\u0020\u0055\u004e\u0049
\u007b
\u0070\u0075\u0062\u006c\u0069\u0063\u0020\u0073\u0074\u0061\u0074\u0069\u0063\u0020\u0076\u006f\u0069\u0064\u0020\u006d\u0061\u0069\u006e\u0028\u0053\u0074\u0072\u0069\u006e\u0067\u005b\u005d\u0020\u0061\u0029
\u007b
\u0053\u0079\u0073\u0074\u0065\u006d\u002e\u006f\u0075\u0074\u002e\u0070\u0072\u0069\u006e\u0074\u0028\u0022\u0048\u0031\u0022\u0029\u003b
\u007d
\u007d

如果通过native2ascii -reverse传递的是:

public class UNI
{
public static void main(String[] a)
{
System.out.print("H1");
}
}

昨天,我遇到了太空问题。今天它好像在运行。 任何人都可以告诉在什么情况下应该有问题吗?

1 个答案:

答案 0 :(得分:0)

编译和运行您提供的代码(没有虚假空白)显示没有问题:

$ cat UNI.java
\u0070\u0075\u0062\u006c\u0069\u0063\u0020\u0063\u006c\u0061\u0073\u0073\u0020\u0055\u004e\u0049
\u007b
\u0070\u0075\u0062\u006c\u0069\u0063\u0020\u0073\u0074\u0061\u0074\u0069\u0063\u0020\u0076\u006f\u0069\u0064\u0020\u006d\u0061\u0069\u006e\u0028\u0053\u0074\u0072\u0069\u006e\u0067\u005b\u005d\u0020\u0061\u0029
\u007b
\u0053\u0079\u0073\u0074\u0065\u006d\u002e\u006f\u0075\u0074\u002e\u0070\u0072\u0069\u006e\u0074\u0028\u0022\u0048\u0031\u0022\u0029\u003b
\u007d
\u007d

$ javac UNI.java

$ java UNI
H1

Java在很大程度上忽略了空格,因此“在文件开头添加空格”应该没有效果。无论你以前遇到什么问题,最有可能因为尝试使用编写为Unicode转义的源代码而产生混淆。如果您坚持使用“真实”字符,那么编写可编译代码会更容易!