作者achaos (热~~~~)
看板java
标题Re: [问题] big5转utf8
时间Tue Mar 25 22:10:03 2014
回覆一下推文的疑惑
其实本来都要有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的程式内部会有的处理模式
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.231.152.244
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/java/M.1395756605.A.CD4.html