我不懂
纯粹给你顶上来
你应该去j2me问更好

解决方案 »

  1.   

    用utf8编码,显示的时候在解码。再不行就进行两次utf8编码,一次解码
      

  2.   

      编码问题 还是用 utf-8 国际标准好点
      

  3.   

     public void run() {   
                // 初始化短信   
                OutboundMessage outMsg = new OutboundMessage(phone, message);   
                outMsg.setEncoding(MessageEncodings.ENCUCS2);//编码 
                try {   
                    service.sendMessage(outMsg);   
                    logger.info("发送短信:\n" + outMsg);   
                } catch (Exception e) {   
                    logger.error("短信发送失败,", e);   
                }   
            }   
      

  4.   


    import org.loon.framework.test.sms.SMS;   
    import org.loon.framework.test.sms.SMSImpl;   
    public class SendManager {   
         public static void main(String[] args) throws Exception {   
             SMS sms = new SMSImpl();   
             sms.begin(); // 与默认手机端口建立通讯   
          sms.getDriver().sendMessage("13912345678","短信内容");   
          sms.end();// 关闭通讯   
         }  import org.loon.framework.test.sms.SMS;
    import org.loon.framework.test.sms.SMSImpl;
    public class SendManager {
         public static void main(String[] args) throws Exception {
             SMS sms = new SMSImpl();
             sms.begin(); // 与默认手机端口建立通讯
          sms.getDriver().sendMessage("13912345678","短信内容");
          sms.end();// 关闭通讯
         }我们可以通过简单的封装让操作变得更加简便一点:view plainrun in browsercopy to clipboardprint?
    package com.xiaosilent.demo;   
      
    import java.util.*;   
      
    import org.apache.log4j.Logger;   
    import org.smslib.*;   
      
    import com.xiaosilent.util.Parameters;   
      
    /**  
     * 短信发送工具  
     *  
     * @author Administrator  
     *  
     */  
    public class SMSSender {   
      
        private Service service;   
        private String port, manufacturer, model;   
        private int baudrate;   
        private Logger logger = Logger.getLogger(SMSSender.class.getName());   
        private Timer timer;   
      
        private static SMSSender instance;   
        private static boolean available;   
      
        private SMSSender() {   
            port = Parameters.getSmsModemPort(); //获取参数配置,端口(COM1)   
            manufacturer = Parameters.getSmsModemManufacturer(); //   
            model = Parameters.getSmsModemModel(); //   
            try {   
                baudrate = Integer.parseInt(Parameters.getSmsModemBaudRate());// 比特率(9600)   
            } catch (Exception e) {   
                baudrate = 9600;   
            }   
            timer = new Timer();   
            available = open();   
        }   
      
        public static SMSSender getInstance() {   
            if (instance == null) {   
                instance = new SMSSender();   
            }   
            return instance;   
        }   
      
        /**  
         * 判断短信猫是否可用  
         *  
         * @return  
         */  
        public boolean isAvailable() {   
            return available;   
        }   
      
        /**  
         * 初始化,启动短信猫  
         *  
         * @return  
         */  
        private boolean open() {   
            service = new Service();   
            SerialModemGateway gateway = new SerialModemGateway("SMS", port, baudrate, manufacturer, model);   
            gateway.setInbound(false);   
            gateway.setOutbound(true);   
            service.addGateway(gateway);   
            service.setOutboundNotification(new IOutboundMessageNotification() {   
                public void process(String gatewayId, OutboundMessage msg) {   
                    logger.info("Outbound handler called from Gateway:" + gatewayId);   
                    logger.info(msg);   
                }   
            });   
            try {   
                service.startService();   
            } catch (Exception e) {   
                logger.error("短信猫启动失败!" + e.getMessage());   
                close();   
                return false;   
            }   
            return true;   
        }   
      
        /**  
         * 发送短信  
         *  
         * @param phone  
         * @param message  
         * @return  
         */  
        public void send(String phone, String message) {   
      
            logger.info("请求发送短信,手机:" + phone + ",内容:" + message);   
      
            if (!available) { // 状态检测,如果不可用,直接跳过   
                logger.info("短信猫状态异常,跳过短信处理!");   
                return;   
            }   
      
            timer.schedule(new SendTask(phone, message), 0);   
        }   
      
        /**  
         * 关闭短信猫  
         */  
        public void close() {   
            try {   
                timer.cancel();   
                service.stopService();   
                logger.info("短信猫已关闭!");   
            } catch (Exception e) {   
                logger.error("关闭短信猫失败!", e);   
            }   
        }   
      
        private class SendTask extends TimerTask {   
      
            private String phone, message;   
      
            public SendTask(String phone, String message) {   
                this.phone = phone;   
                this.message = message;   
            }   
      
            public void run() {   
                // 初始化短信   
                OutboundMessage outMsg = new OutboundMessage(phone, message);   
                outMsg.setEncoding(MessageEncodings.ENCUCS2);   
                try {   
                    service.sendMessage(outMsg);   
                    logger.info("发送短信:\n" + outMsg);   
                } catch (Exception e) {   
                    logger.error("短信发送失败,", e);   
                }   
            }   
        }   
    }  
      

  5.   

    《中国电信报文接口格式定义》的短消息格式
    短消息内容体的编码格式。
    0=ASCII编码;
    3=短消息写卡操作;
    4=二进制短消息;
    8=UCS2编码;
    15=GB18030编码;
    246(F6)=(U)SIM相关消息;
    其它保留。
    对于文字短消息,要求MsgFormat=15。对于回执消息,要求MsgFormat=0。如果是UCS2编码:
    msgContent = new String(this.getMsgField(), "iso-10646-ucs-2");
      

  6.   

    感谢大家的回复,不过问题还是没最终解决
    根据显示内容
    at+cmgl="all" 
    +CMGL:0,"REC READ","15710000000",0,4,4 短信编码应该为4
    但是不知道最终怎么解码发送短信时,手机接收中文短信是正常的,但就是接收短信怎么着也解析不出来。期待最终解决方案.