当前位置: 代码迷 >> J2SE >> JAVA 字符集有关问题.
  详细解决方案

JAVA 字符集有关问题.

热度:82   发布时间:2016-04-24 02:00:00.0
JAVA 字符集问题..





Java code
Windows 版本 (文件字符集为GBK)public class Test {        /**         * @param args         */        public static void main(String[] args) {                // TODO Auto-generated method stub           String a = "啊哦额,aa无a";           System.out.println(a.length());        }}输出为 8 Linux 版本 (文件字符集:Test.java: ISO-8859 C++ program text) ,操作系统的字符集US_enpublic class Test {        /**         * @param args         */        public static void main(String[] args) {                // TODO Auto-generated method stub           String a = "啊哦额,aa无a";           System.out.println(a.length());        }}输出为 12 ("啊" 占2个字节)



首先linux文件字符集和系统字符集是不可改变的.但可以改程序.

我想让linux下a.length的长度跟windows下输出是一样的.

另.我需要一个通用的方法 ..

谢谢..各位大哥了


------解决方案--------------------
String str = "啊哦额,aa无a";
try {
byte[] b = str.getBytes("iso-8859-1");
String s = new String(b, "gbk");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
  相关解决方案