[问题] 编码转换问题(BIG5转UTF8)

楼主: hagai0407 (阿丐哦哪个丐)   2017-01-14 13:19:01
各位前辈午安,最近在制作专案时遇到编码转换问题...
详情如下:
本身的servlet要呼叫一支API,而该api会回传xml格式字串,
但对方API的系统编码是BIG5,而我的系统是UTF8......
不知道是不是因为这个原因导致回传字串的中文部分变成很多菱形的乱码,
爬文结果多半与getByte function有关,
但试了相关的语法只让菱形变成问号而已。
请问各位大大能否提供类似问题的解法? 感激不尽QQQ
作者: icydream (巧虎)   2017-01-14 14:58:00
在读对方资料时 先用big5,接着再用utf8来编码
作者: ssccg (23)   2017-01-14 15:45:00
String是没有编码的(先不管怎么存在内存的),重点要放在binary资料的编码,对方系统编码是BIG5,代表的是对方传出时是String → byte[] (BIG5编码),所以你在收资料时,取得byte[]后直接用BIG5解码回String就好,跟你自己的UTF-8没关如果是先读byte[]再转String就是new String时设定如果是用Reader读Stream,那就是设Reader的编码你会菱形又变问号大概是两个编码不懂状况转来转去,不要想太复杂...
作者: LPH66 (-6.2598534e+18f)   2017-01-14 18:23:00
Java 处理编码事情已经很单纯了, byte[] 就是外界编码转成 String 需要提供编码, 它就会变成 Unicode 字串要再送出去时再变回 byte[], 这里也要再给一次编码至于你的系统是 UTF-8 这件事和 Java 无关

Links booklink

Contact Us: admin [ a t ] ucptt.com