Re: [问题] big5转utf8

楼主: danny8376 (钓到一只猴子@_@)   2014-03-24 22:58:24
※ 引述《del680202 (HANA)》之铭言:
:
: ※ 编辑: del680202 来自: 61.230.139.95 (03/24 22:33)
: 推 virnux:用BufferedWriter装饰OutputStreamWriter 03/24 22:44
: → danny8376:getBytes拿到的是正确的啊... 你那里没写对吧 03/24 22:46
:
: 我问题没描写清楚
:
: 说细一点的话
:
: 我有一只daemon会去产生档案是big5编码
:
: java client会去把那个档案用InputStream读进来后先转成java字串
:
: 假设是 String str = new String(inputBytes, "big5")
:
: 这时候的str在client可以正常显示没问题
:
: 之后要把str丢往server了,先经过一手转换
:
: str = new String(str.getBytes("utf-8"))
问题在这
new String(str.getBytes("utf-8"))
这句的意思是请把str.getBytes("utf-8")这一整串utf-8的bytes
用"系统默认编码"去转成字串 也就是big5
然后送出时会再转成bytes送出
而这边就产生你说的问题了
请改成
new String(str.getBytes("utf-8"), "utf-8")
不然就直接
write(str.getBytes("utf-8"))
:
: 之后server接到str用Writer写到local
:
: 不过显示出来就如上面讲的,还得经过iconv转回big5才能正常显示
:
:
作者: del680202 (HANA)   2014-03-24 23:00:00
我在试看看 感谢
作者: LPH66 (-6.2598534e+18f)   2014-03-25 01:30:00
我觉得这是写过 C 的人来写 Java 最常掉的坑...

Links booklink

Contact Us: admin [ a t ] ucptt.com