从DB中得到字符串,然后需要转码UTF8发给接口
假设DB得到字符串: "一s二三aaa一平二三要转ddd换的字符bbb八九"
strBuf.append(new String(rs.getString("content").getBytes("UTF-8")));
对方收到,转会来,丢字了,结果:"二三aaa二三要转ddd换的字符bbb八九"郁闷啊

解决方案 »

  1.   

    原来的:Test-123456消息测试下的子。哈看
    发过去:Test-123456消息测试下的子哈看
      

  2.   

    TCP直接发的
    和对方连接,还有别的,人家发过去是对的
    不过他们都是C写的,我这边是JAVA
      

  3.   

    一二三四?AAA-AAA消息测ab。KKKK-KKKK
    过去就少了:一二
    结果是:
    三四?AAA-AAA消息测ab。KKKK-KKKK
      

  4.   

    想你一啊二就三四?AAA-AAA消息测ab。KKKK-KKKK
    鎯充綘涓?晩浜屽氨涓夊洓锛烝AA-AAA娑堟伅娴媋b銆侹KKK-KKKK
    看来这样转不行啊,里面有?发过去结果是:
    想你二就三四?AAA-AAA消息测ab。KKKK-KKKK
      

  5.   


    约定很简单,就是以UTF8发一个固定长度的字符串过去
      

  6.   

    strBuf.append(new String(rs.getString("content").getBytes("UTF-8")),"UTF-8");
    指定一下字符集
      

  7.   

    strBuf.append(new String(rs.getString("content").getBytes("UTF-8"),"UTF-8"));
    这样
      

  8.   

    strBuf.append(new String(rs.getString("content").getBytes("iso-8859-1"),"UTF-8"));
      

  9.   

    那边接收的是按指定长度接收的吧,你传的长度是不是按照字符串没转指点的长度传的
    new String(rs.getString("content").getBytes("UTF-8")).length()这个来传长度看看
      

  10.   

    楼主用
    URLEncoder
    URLDEcoder
    试试
      

  11.   

    问题解决,编码的时机不对,放在TCP发消息的时候再转UTF8就行了