Re: [问题] big5转utf8

楼主: achaos (热~~~~)   2014-03-25 22:10:03
回复一下推文的疑惑
其实本来都要有encoding参数,因为你要告诉java你要用什么编码来解析这个字串
如果没有带,那java会用系统的默认编码。
假设我们现在是收big5字串,再假设getByte后的Array是 [1A,2B]
但是系统是UTF8,那想要将这个Array转成字串,java会用UTF-8的编码进行转换
就会乱码了。
这个情形就可以在转换时,加上encoding参数,告诉java我这个Array是BIG5哦
请先用BIG5做转换,转换完毕再java里面就是unicode,
这个时候拿着转换后的String做任何事都不会有问题了。
这是我实际试过得到的结果,我不知道观念对不对
但就是一个原则,如果编码有错乱,那就是讯息进来或出去时,都要告知java正确的编码
也就是加上encoding啦!!!!
※ 引述《danny8376 (钓到一只猴子@_@)》之铭言:
: ※ 引述《Lordaeron (Terry)》之铭言:
: : Java 的 String 内部是 Unicode 是指什么呢?
: : 你打开一个Big5存的文字档, 读取其中的内容, 用READLINE, 读到字串中,
: : 哪么, 这字串的编码会是?
: 内部是unicode存在内存
: 就像Win现行所有程式在内存内都是UTF-16编码一样的状况
: 也就是说当你用big5去读取big5的档案
: 这中间会把档案用你指定的big5去解码
: 解完之后转成unicode(UTF-16)之后塞进内存里
: 而当你要输出到OutputStream的时候
: 又会把这unicode转成你要的编码
: 这是所有支援unicode的程式内部会有的处理模式

Links booklink

Contact Us: admin [ a t ] ucptt.com