Java Web 常见的编码问题

2018-06-05  本文已影响0人  天幕_bc1a

相信每一个使用 Java 的小伙伴们都遇到过这个问题,这里主要说下我在路上遇到的编码问题。然后最近在看一本书,恰好有个地方讲了这个,就顺便记一下。有的内容是摘自博客,喜欢的童鞋可直接过去看哈。

就我个人使用的情况来说:

字符流向字节流转换的时候需要编码

     public static void main(String[] args) throws IOException {
        String file = "D:/test.log";
        String charset = "UTF-8";
        FileOutputStream outputStream = new FileOutputStream(file);
        OutputStreamWriter writer = new OutputStreamWriter(outputStream, java.nio.charset.Charset.forName(charset));
        try {
            writer.write("hello,你好");
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            writer.close();
        }
        FileInputStream inputStream = new FileInputStream(file);
        InputStreamReader reader = new InputStreamReader(inputStream);
        char[] buffer = new char[100];
        StringBuffer stringBuffer = new StringBuffer();
        int count = 0;
        try {
            while ((count = reader.read(buffer)) != -1) {
                stringBuffer.append(buffer, 0, count);
            }
        } finally {
            reader.close();
        }
        System.out.println(stringBuffer.toString());
    }

上面代码在编译器里面运行是没有问题的,不过用 javac 编译运行就会有问题。但是如果返回来,由于 UTF-8 可以向下兼容(不知道这么说恰不恰当哈)GBK,所以写入的时候用默认的,我这里是 win 的 GBK,读取的时候是 UTF-8 就不会有问题。

Web 中需要的编码

URL 的编码

相信,都用过 request.getParameter 获取参数。详情可查看
其他博客

关于编码,其实还有很多,如URL 编码中不同部分的编码解码方式,js 的编码方式等,感兴趣的童鞋我们一起学习哈~

上一篇 下一篇

猜你喜欢

热点阅读