如果这个encoding指的是xml/JSP/HTML文件本身的编码方式,那么,这个encoding应该是给应用程序“看”的,但是,如果应用程序不知道这个encoding,就不可能正确打开文件,读出这一句,而如果应用程序已经知道encoding,并因此顺利读出文件,则这个encoding就形同虚设了(除非它是个注释comment,但在xml/JSP/HTML文件中这显然不是一个comment)。
此外,还有一种可能,就是xml/JSP/HTML文件本身按照默认的编码方式进行编码(如中文Windows下是GBK),应用程序按照默认编码方式解码,读出文件内容,但在对读出的文件信息进行编码存储/传输时使用指定的encoding。但这种解释也有问题,如HTML文件在传递给Browser时采用的应该是UTF-8,而不应该是GB2312,如果采用GB2312,可能造成接收方的Browser无法正确解读收到的内容。除非,encoding只影响字符串的编码,但这好像也不大可能。
到底应该如何理解呢?请各位达人指点迷津。
此外,还有一种可能,就是xml/JSP/HTML文件本身按照默认的编码方式进行编码(如中文Windows下是GBK),应用程序按照默认编码方式解码,读出文件内容,但在对读出的文件信息进行编码存储/传输时使用指定的encoding。但这种解释也有问题,如HTML文件在传递给Browser时采用的应该是UTF-8,而不应该是GB2312,如果采用GB2312,可能造成接收方的Browser无法正确解读收到的内容。除非,encoding只影响字符串的编码,但这好像也不大可能。
到底应该如何理解呢?请各位达人指点迷津。
解决方案 »
- java
- 输入输出流问题!!
- 请问想在一个窗体出现后过5秒钟,跳转在另一个窗体,怎么做啊,要响应什么时间啊,谢谢了,急,在线等.
- 怎样在被调用方法里,得到调用它的对象的实际类型?
- 为何会出现异常,请高手指教!
- 请问大侠一个关于变量的问题!!!十分急!!!!
- 请问有人知道吗?
- 监听网络端口读异常
- 我现在正在看JAVA 2图形设计 卷2 SWING,这本书写的很细,我不知道这样一节一节的看效果好不好,只是我觉得应该做点什么小东东这类的,在做的过程中学习提高,可是我又不知道该做什么?
- 那里可以下载此书所配光盘上的源代码:《Java2编程详解》(Speical Edition Using Java2), 美 Joseph L. Weber 著, 1234 页
- 奇怪!!关于中文字符的问题!
- 请问关于自动登陆网页
比如,我按照
http://www.w3schools.com/xml/xml_encoding.asp
测试了一下,当将指定encoding为单字节编码或UTF-8(UTF-8也被看成了单字节
编码,有点意外),而将文件实际存为Unicode,则IE根本就无法正确解析XML文件,会报告
Switch from current encoding to specified encoding not supported.
的错误。
所以楼上的解释还是有问题的。
随便你用什么编码,ASCII码部分都是一样的,所以程序能准确读出文件中申明的编码方式。
然后用申明的编码方式继续读取整个文件,从而正确解码。如果文件中实际存储的编码方式跟申明的有差异,那么大部分情况下都会造成不能正确解码!需要特别指出的是:
1、如果文件的内容只有ASCII字符,没有多字节字符,那么“兼容性很强”,很少会碰到问题,其实是问题很难发现。
2、用java程序处理时,如果使用一些reader载入文件,那么中文系统默认使用gbk,此时,文件中只要是中文就会对的,随便申明成什么编码;看起来这个例外很不错,其实,造成汉字乱码的原因与此同一原因:编码不正确!用writer输出xml时,申明成utf-8的话,实际写的还是gbk,造成申明与实际不一致,进而造成IE等不能正确解析。所以在处理xml时少用writer/reader,而应该用InputStream/OutputStream。真正的编码方式一定要与申明的一致。