String类的Java 1.6方法没有';我不适合所有角色

String类的Java 1.6方法没有';我不适合所有角色,java,string,methods,char,character,Java,String,Methods,Char,Character,我有一个由“ò,ý,ü,ù,ù,÷,ö,ï,î”等字符组成的字符串。在使用Java1.6编译类之前,可以使用myString.split(“ý”)或myString.contains(“ý”)工作。使用命令行编译类后,这些方法不能处理这些字符。 我必须使用Java1.6 是否有任何方法可以避免此问题?默认情况下,Java源文件存储在平台默认编码中,如果未指定-encoding,则javac将以这种方式读取文件 如果在Eclipse中向源文件中键入/粘贴字符,Eclipse将自动将编码更改为UTF

我有一个由“ò,ý,ü,ù,ù,÷,ö,ï,î”等字符组成的字符串。在使用Java1.6编译类之前,可以使用
myString.split(“ý”)
myString.contains(“ý”)工作。使用命令行编译类后,这些方法不能处理这些字符。
我必须使用Java1.6


是否有任何方法可以避免此问题?

默认情况下,Java源文件存储在平台默认编码中,如果未指定
-encoding
,则
javac
将以这种方式读取文件

如果在Eclipse中向源文件中键入/粘贴字符,Eclipse将自动将编码更改为UTF-8(我相信它会首先提示您,但我不确定)

在Eclipse中,每个Java源理论上都可以采用不同的编码。Eclipse会记住每个源文件的编码,您可以在Eclipse的“文件属性”对话框中查看和/或更改该编码

如果Eclipse已将编码更改为UTF-8,则在Eclipse中编译可以正常工作,但在外部编译(例如通过调用
javac
或使用Ant)将不起作用,因为默认情况下,它们将使用平台默认编码读取源文件

因此,如果您有一个混合的源文件编码,您必须将它们全部更改为相同的编码,因此使用
javac
可以指定该公共编码。你有两个选择:

  • 将所有文件转换为UTF-8,并指定
    -编码UTF-8
  • 将所有文件转换为平台默认编码,并对该编码不支持的字符使用unicode转义,这对于
    ý
    是非常有用的

默认情况下,Java源文件存储在平台默认编码中,如果未指定
-encoding
,则
javac
将以这种方式读取文件

如果在Eclipse中向源文件中键入/粘贴字符,Eclipse将自动将编码更改为UTF-8(我相信它会首先提示您,但我不确定)

在Eclipse中,每个Java源理论上都可以采用不同的编码。Eclipse会记住每个源文件的编码,您可以在Eclipse的“文件属性”对话框中查看和/或更改该编码

如果Eclipse已将编码更改为UTF-8,则在Eclipse中编译可以正常工作,但在外部编译(例如通过调用
javac
或使用Ant)将不起作用,因为默认情况下,它们将使用平台默认编码读取源文件

因此,如果您有一个混合的源文件编码,您必须将它们全部更改为相同的编码,因此使用
javac
可以指定该公共编码。你有两个选择:

  • 将所有文件转换为UTF-8,并指定
    -编码UTF-8
  • 将所有文件转换为平台默认编码,并对该编码不支持的字符使用unicode转义,这对于
    ý
    是非常有用的

编译前它是如何工作的?您是否发明了自己的Java解释器,可以直接运行Java源代码而无需编译?它以何种方式不起作用?@Andreas我使用Eclipse运行它,Eclipse可能使用Java 1.8。对于编译,我指的是使用Java1.6编译并将其导出到jar中。尝试验证编码的差异是否与@DanielJipa一致。您的问题可能是源文件的编码。文件是UTF-8格式的吗?如果是,请在编译文件时尝试指定编码。Eclipse通常会为您管理这一点,所以我假设您正在谈论从命令行编译。在编译之前,它是如何工作的?您是否发明了自己的Java解释器,可以直接运行Java源代码而无需编译?它以何种方式不起作用?@Andreas我使用Eclipse运行它,Eclipse可能使用Java 1.8。对于编译,我指的是使用Java1.6编译并将其导出到jar中。尝试验证编码的差异是否与@DanielJipa一致。您的问题可能是源文件的编码。文件是UTF-8格式的吗?如果是,请在编译文件时尝试指定编码。Eclipse通常会为您管理这一点,所以我假设您所说的是从命令行编译。