<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 241,  comments - 116,  trackbacks - 0

            最近在嘗試使用ActiveMQ做系統間的繼承,當然少不了Java和C++客戶端的交互問題。由于Java與C++在字符串上采用了不同方式的編碼 (Java-Unicode, C++ - ascii)造成了文本數據傳輸過程中的編碼問題, 下面記錄一下解決方

    環境:

    C++ 端:

    操作系統:         Win7

    JMS客戶端:     CMS 1.0 (新版本的CMS需要VS2008編譯)

    開發環境:         VS2005

              Java端:

                       操作系統:          WinXp

                       JMS客戶端:       ActiveMQ5.4.1-Core

                       開發環境:           JDK1.6.22

              ActiveMQ:

                       ActiveMQ 5.4.1


    解決方法:

            根據JMS API對Message類別的定義,最適合多語言見交互的Message類型應該是BytesMessage和TextMessage。由于 BytesMessage的readUTF方法在CMS1.0中,接收Java端發出的UTF字符時會拋出異常,導致BytesMessage不好使用;壞賬

            TextMessage中,無論C++端以哪種格式的數據setText() , Java端接收到的數據都是以ISO-8859-1 格式編碼的字符。所以統一在發送和接收時都采用 ISO-8859-1 的方式進行數據傳輸

    發送時的代碼:

        private void writeTextMessage(String txt) {
            try {
                String msg = txt;        
                            
                String iso = new String(txt.getBytes("GBK"), "ISO-8859-1");
                
                TextMessage message = pubSession.createTextMessage();
                message.setStringProperty("language", "java");
                message.setText(iso);
                
                pub.publish(message);
                
            } catch (JMSException e) {
                e.printStackTrace();
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
        }

    接收時的代碼:

        private void onTextMessage(TextMessage message) throws JMSException {
            String txt = message.getText();
            
            try {
                String gbk = new String(txt.getBytes("ISO-8859-1"), "GBK");
                System.out.println(gbk);
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
        }

    posted on 2011-05-06 10:15 墻頭草 閱讀(6147) 評論(5)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    人人游戲網 軟件開發網 貨運專家
    主站蜘蛛池模板: 国产亚洲福利精品一区二区| 永久免费无码日韩视频| 亚洲精品成a人在线观看☆| 在免费jizzjizz在线播| 四虎免费影院ww4164h| 亚洲区小说区激情区图片区| 亚洲av无码一区二区三区在线播放 | 又长又大又粗又硬3p免费视频 | 免费成人福利视频| 日韩电影免费在线观看网站 | 亚洲国产香蕉人人爽成AV片久久 | 亚洲宅男永久在线| 免费网站看v片在线香蕉| 亚洲综合国产成人丁香五月激情 | 一级成人a做片免费| 亚洲国产免费综合| 久久久久亚洲精品无码网址| 黄色一级视频免费观看| 三年片在线观看免费| 亚洲黄色免费在线观看| 97久久精品亚洲中文字幕无码| 亚洲免费观看在线视频| 又黄又爽无遮挡免费视频| 夜夜爽妓女8888视频免费观看| 在线观看日本免费a∨视频| 亚洲日韩国产AV无码无码精品| 免费观看亚洲人成网站| 亚洲成人免费在线观看| 花蝴蝶免费视频在线观看高清版| 亚洲av无码一区二区三区乱子伦| 亚洲一级免费视频| 亚洲无av在线中文字幕| 337P日本欧洲亚洲大胆艺术图| 香港a毛片免费观看| 最新亚洲精品国偷自产在线| 亚洲精品动漫人成3d在线| 在线免费观看伊人三级电影| 久久精品国产亚洲av麻豆色欲 | 拍拍拍又黄又爽无挡视频免费| 精品无码专区亚洲| 亚洲第一福利视频|