Java中的字符编码问题,请专家帮忙

batfree 2004-06-28 02:51:37
最近使用Java开发J2ME程序,要读文本文件,因而涉及到编码问题,但是在PC上正常,而到了手机上就全是乱码,于是找来编码问题仔细研究,却越来越糊涂,什么Unicode,UTF8,ISO-8851-1,Unicode-bigindian,还有什么GBK,gb2312等,弄的我一头雾水,各位高手,那一位能系统的讲一下,因为我觉得这个问题我们经常遇到。这涉及到各种问题。中文总是大问题。
...全文
135 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
allenhe 2004-06-28
  • 打赏
  • 举报
回复
1。简单的来说,你文件是什么编码,那你就用什么编码读。
具体来说,指定编码比不指定编码好。因为不指定就是根据平台的默认编码来读。当你的文件编码和默认编码不同的时候,你这个问题就来了。
其次,用byte比用char好。其实byte->char这一步已经是用默认编码转换过了。(char=String这个要明白)所以这一步和new String(byte[])没有区别
2。java编译以后就是unicode了,也就是说,不会有不同语言下出现乱码的情况。像上面那篇文章用指定encode来编译基本上是多此一举。因为那个是用来指定源文件编码格式的,你随便用一个ide都不需要手工去设定

3。编码问题
Unicode
UTF8
Unicode-bigindian
这些都是unicode,所谓unicode就是包含世界上大部分的编码而且任一一个字符都有唯一的编码对应。因此,用unciode编码-解码是不会出现乱码问题的
ISO-8859-1
全世界最通用的编码,但是一般不支持双字节(也就是说,和中日韩无缘)
大部分的web乱码问题是因为用双字节编码然后用这个默认的iso-8859-1去解(btw:properties类也是如此)
GBK,gb2312
我们自己的编码了,gb2312是支持大部分的一级二级汉字,但是不支持繁体,日汉字等等。gbk兼容gb2312(也就是说可以用gb2312去编然后用gbk去解,反之不行)
同时兼容日文等等。(很遗憾,和sjis有冲突)
LiuliTom 2004-06-28
  • 打赏
  • 举报
回复
csdn上有一篇很不错的文章讲解了java中文问题,希望有帮助。
http://dev.csdn.net/article/27/27142.shtm
liuliliujian 2004-06-28
  • 打赏
  • 举报
回复
我支持你,我一直对这个问题也很是头疼,你要是知道了就告诉我下啊,找到资料拜托也传份给我呀,liuliliujian@hotmail.com,这里谢过了

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧