Java编译问题与ß;性格
我遇到了一个奇怪的问题。在下面的代码中,我正在搜索ß的存在Java编译问题与ß;性格,java,non-ascii-characters,Java,Non Ascii Characters,我遇到了一个奇怪的问题。在下面的代码中,我正在搜索ß的存在 public static void main(String[] args) { char [] chArray = {'ß'}; String str = "Testß"; for(int i=0; i<chArray.length; i++){ if(str.indexOf(chArray[i])>-1){ System.out.println("ß is
public static void main(String[] args) {
char [] chArray = {'ß'};
String str = "Testß";
for(int i=0; i<chArray.length; i++){
if(str.indexOf(chArray[i])>-1){
System.out.println("ß is present");
break;
}
}
}
publicstaticvoidmain(字符串[]args){
char[]chArray={'ß'};
String str=“Testß”;
对于(int i=0;i-1){
System.out.println(“ß存在”);
打破
}
}
}
我有一个运行在JBOSS上的web应用程序,linux,Java 6当将代码包含在上述指定应用程序中时,上述代码未检测到ß的存在。
令人惊讶的是,如果我在eclipse工作区中编译同一个文件,然后在应用程序中应用补丁,它将按预期运行强>
注意事项:
提前谢谢我想你的问题是ß的编码。您有两种解决错误的方法:
native2ascii "your_class_file.java"
javac "your_class_file.java"
utf-8
,windows上为iso-8859-15
:
javac -encoding "encoding" "your_class_file.java"
“\u00df”
替换“ß”
。如果上述解决方案无效,请将每个字符及其unicode值打印到System.out
,然后查看哪个字符是“ß”
另一个错误可能是您读取的文本编码不支持ß;尝试通过读取字节来读取字符串,然后调用:
String input = new String(input_bytes, StandartCharsets.UTF_8); // on linux
String input = new String(input_bytes, StandartCharsets.ISO_8859_1); // on windows
有关字符集的更多信息,请参阅。感谢您的时间和回复
实际问题是类文件没有在构建中生成,因此更改没有反映出来。在java源文件中使用ß的unicode值\u00DF应该可以正常工作。我怀疑您没有将源代码保存为UTF-8