作者danny8376 (钓到一只猴子@_@)
看板java
标题Re: [问题] big5转utf8
时间Mon Mar 24 22:58:24 2014
※ 引述《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才能正常显示
:
:
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.115.216.102
※ 编辑: danny8376 来自: 140.115.216.102 (03/24 23:00)
1F:推 del680202:我在试看看 感谢 03/24 23:00
2F:推 LPH66:我觉得这是写过 C 的人来写 Java 最常掉的坑... 03/25 01:30