Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中,我可以要求系统告诉我文件的字符集吗?_Java_Character Encoding - Fatal编程技术网

在Java中,我可以要求系统告诉我文件的字符集吗?

在Java中,我可以要求系统告诉我文件的字符集吗?,java,character-encoding,Java,Character Encoding,有一些问题,比如,猜测文件的字符集/编码。但是Java中有没有一种方法可以让系统在尝试猜测之前告诉我 没有。这就是为什么要问这些问题。系统应该如何知道?如果编码没有在某种元数据中声明,那么经过教育的猜测是唯一可以做的事情。系统无法知道写入文件时使用了什么编码。系统需要根据文件内容进行有根据的猜测,就像您在应用程序中所做的一样 您需要自己实现这一点,或者使用一个外部库,如您所引用的中所述。因此,如果我使用esplicit编码编写文件,那么当我必须再次读取时,我必须记住或猜测编码?@s.susini

有一些问题,比如,猜测文件的字符集/编码。但是Java中有没有一种方法可以让系统在尝试猜测之前告诉我

没有。这就是为什么要问这些问题。

系统应该如何知道?如果编码没有在某种元数据中声明,那么经过教育的猜测是唯一可以做的事情。

系统无法知道写入文件时使用了什么编码。系统需要根据文件内容进行有根据的猜测,就像您在应用程序中所做的一样


您需要自己实现这一点,或者使用一个外部库,如您所引用的中所述。

因此,如果我使用esplicit编码编写文件,那么当我必须再次读取时,我必须记住或猜测编码?@s.susini:如果您使用纯文本文件,是的。这就是为什么这不是一个很好的文件格式。说你想要什么关于XML,但是它的显式编码声明可以为你省去很多麻烦。这是正确的。只需与编码保持一致。UTF-8是一个不错的选择。正如您所写的,它可以在某个地方的某种元数据中声明。。。例如MacOS X上的扩展属性。因此,可以想象其他系统使用类似的机制来跟踪文本编码,Java方法将提供访问这些机制的统一方式。不过,没有这样的运气:-/