中文乱码

来源:互联网 发布:二叉树的结点算法 编辑:程序博客网 时间:2024/03/29 22:40

在myeclipse的单元测试中读文件不乱码,但放到服务器中就乱码。


服务器进程之间通信:

其实这种问题上面有说过,就是程序和数据库之间就是类似的例子,不同的程序通信也是这个道理,在java方面,还存在一类特殊的操作就是对象序列化,其实所谓的对象序列化就是在数据结构方面做了一个特殊的标志而是,本身对象是没有序列化的能力的;它最终还是需要传递数据,只是结构和数据按照某种特定的格式传输,也就是说理解对象的序列化同样可以使用上面的说明来理解;
同样和文件的交互就是类似的IO操作,存储在磁盘上肯定是二进制的信息,所以需要在存储前将其编码,在java中如果使用默认的FiltReader和FileWriter,而没有进行编码那么就会像第一章所述采用一些默认的信息;这也是为什么有些人说自己的程序在自己调试程序的时候是好用的,为什么放到服务器上就不好用了,因为服务器上某些默认的环境信息和你的本地不一样,这种情况不仅仅针对于读写文件,在进程的通信各方面都有这种说明;要对文件进行字节转换字符,或字符转换为字节进行磁盘读写,有两种方法保证字符集的一致性,一种方法就是文件的内容提前转换为byte数据,通过InputStream和OutputStream数据来读写;另一种方法就是通过FileInputStream和FileOutputStream,转换为对应的Reader和Writer的时候,需要在参数上设置字符集,如:new InputStreamReader(new FileInputStream(file) , "GBK");至于是否进行Buffer是另外的问题了,这里就是告诉如何进行编码和解码的设置过程,同理在对象序列化的时候也是通过这类似的方法来进行包装。
0 0
原创粉丝点击