首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

字符编码有关问题求解

2013-01-27 
字符编码问题求解import java.io.UnsupportedEncodingExceptionpublic class mainTest {/** * @param arg

字符编码问题求解


import java.io.UnsupportedEncodingException;

public class mainTest {

/**
 * @param args
 */
public static void main(String[] args) {
String string = "解析①②";
try {
System.out.println(new String(string.getBytes("EUC-JP"), "EUC-JP"));
System.out.println(new String(string.getBytes("SHIFT-JIS"), "SHIFT-JIS"));
System.out.println(new String(string.getBytes("ISO-2022-JP"), "ISO-2022-JP"));
System.out.println(new String(string.getBytes("MS932"), "MS932"));
System.out.println(new String(string.getBytes("GBK"), "GBK"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}


为什么前三个输出字符①②变成了乱码,而后2个输出就没有问题呢? 该怎么解决乱码问题呢?
[解决办法]
EUC-JP里面根本就没有①②这两个字符
[解决办法]
试试UTF-8,很想知道UTF的是否支持。
[解决办法]
比如新建一个xml文件,内容为<h>中国</h>保存后,用ie或者火狐打开,会有乱码吧?重新打开文件,另存为,指定编码,比如utf-8。再打开或许就正常了,乱码不乱码,要看你文件编码和IDE编码是否同意,知道文件编码,你可以修改浏览器的编码,查看--字符编码--修改为和你文件一致的编码,就不会有乱码问题。
[解决办法]
①②又不是assci码,不是你随意用字符编码就能显示的。
[解决办法]
System.out.println(new String(string.getBytes("EUC-JP"), "EUC-JP"));
从Unicode编码的字符串取得EUC-JP bytes,
再从EUC-JP bytes到Unicode编码的字符串,
过程没有错,错的原因是EUC-JP不支持出现筹码的那几个字符

热点排行
Bad Request.