转码后,字符串丢失!见鬼了!

来源:百度知道 编辑:UC知道 时间:2024/05/30 16:04:46
代码如下:
log.fatal("before:"+news.getContent().length());
news.setContent(new String(news.getContent().getBytes("ISO-8859-1"),"utf-8"));
log.fatal("last:"+news.getContent().length());

日志显示:
FATAL - before:68
FATAL - last:24

为什么会这样呢??见鬼了!!
这个是我程序从windows转到linux后才发现的问题,另外content里面是从jsp的fck编辑器中取的值,比如content="<p><font face="Arial">你好你好你好救救 </font></p><";

我理解的不知道对不对,仅供参考:
Java里是用unicode来保存字符的,16二进制可以保存65535个字符,但是由于加入了大量的汉字等表意字符,65535个字符已经不够用了,扩展的方式就是不常用的字符用两个unicode码表示,那么对于这些字符就需要32位二进制了,不同的编码格式对不常用字符的定义不同(即可对于同一字符,不同的编码可能是16位也可能是32位)

我也来回答