JAVA中文编码问题的小体会
2008-01-09 21:50
288 查看
最近项目中,我负责的这块程序需要通过WEB获得数据,连接数据库操作,通过接口和同事的程序交换数据。这中间遇到了各种编码方式互相转换的问题。折腾了一天,终于解决了中间编码的问题,有一点体会,记下来免得忘记。
JAVA内部字符串都是通过unicode编码方式存储在内存中的。当调用String.getBytes("字符集")时,将返回 转化成该字符集的字节。而new String(bytes[], "字符集")可以把字节数组的按照指定字符集转换成unicode编码存放在内存中。
比如:程序从网站上拉到的字符串是UTF编码,首先把读取到的字节指定UTF-8存储到内存中。
假设已经读取了一个字节数组buffer,那么:
String str = new String(buffer, "UTF-8");
这时,str在内存存放的是正确的含有中文的字符串。后续要转换成GBK的编码,用
byte[] buffer_gb2312 = str.getBytes("GBK");
可以取得GBK编码方式的字节数组。
这样可以对字符串的编码方式进行转换了。
用SAX处理XML时,只要在XML头部的<?xml version="1.0" encoding="GBK"?>设置encoding为XML内容的编码方式,SAX会进行对应的编码。
PS:今天读取rss时,出现解析XML异常,后来发现在开头有三个多余的字节,影响了解析。在读取rss,跳过这三个字节就正常了。
JAVA内部字符串都是通过unicode编码方式存储在内存中的。当调用String.getBytes("字符集")时,将返回 转化成该字符集的字节。而new String(bytes[], "字符集")可以把字节数组的按照指定字符集转换成unicode编码存放在内存中。
比如:程序从网站上拉到的字符串是UTF编码,首先把读取到的字节指定UTF-8存储到内存中。
假设已经读取了一个字节数组buffer,那么:
String str = new String(buffer, "UTF-8");
这时,str在内存存放的是正确的含有中文的字符串。后续要转换成GBK的编码,用
byte[] buffer_gb2312 = str.getBytes("GBK");
可以取得GBK编码方式的字节数组。
这样可以对字符串的编码方式进行转换了。
用SAX处理XML时,只要在XML头部的<?xml version="1.0" encoding="GBK"?>设置encoding为XML内容的编码方式,SAX会进行对应的编码。
PS:今天读取rss时,出现解析XML异常,后来发现在开头有三个多余的字节,影响了解析。在读取rss,跳过这三个字节就正常了。
相关文章推荐
- 深入分析 Java 中的中文编码问题
- Java中文字编码问题详解
- 深入分析 Java 中的中文编码问题
- 编码问题(.java/.jsp/.js等文件的中文乱码)
- 深入分析 Java 中的中文编码问题
- 深入分析 Java 中的中文编码问题(转)
- 深入分析 Java 中的中文编码问题
- Java JNI 调用C++ API及中文编码问题
- 深入分析 Java Web 中的中文编码问题
- java web,charset编码设置正确情况下出现部分中文正常,部分中文乱码的问题
- java web,charset编码设置正确情况下出现部分中文正常,部分中文乱码的问题
- 深入分析 Java 中的中文编码问题
- jsp,java中文乱码问题另类解决方案,jni加密、解密编码
- 深入分析 Java 中的中文编码问题
- JAva Excel api 中的编码和中文问题
- 【转载】深入分析 Java 中的中文编码问题
- 深入分析 Java 中的中文编码问题
- JAVA 编码中文问题系统透彻讲解 UNICODE GBK UTF-8 ISO-8859-1 之间的区别
- 深入分析 Java 中的中文编码问题
- 深入分析 Java 中的中文编码问题