zoukankan      html  css  js  c++  java
  • MMS彩信字符集(字符编码)

    彩信字符集在CharacterSets类中定义

    androidframeworksopt elephonysrcjavacomgoogleandroidmmspduCharacterSets.java

    public class CharacterSets {
        /**
         * IANA assigned MIB enum numbers.
         *
         * From wap-230-wsp-20010705-a.pdf
         * Any-charset = <Octet 128>
         * Equivalent to the special RFC2616 charset value "*"
         */
        public static final int ANY_CHARSET = 0x00;
        public static final int US_ASCII    = 0x03;
        public static final int ISO_8859_1  = 0x04;
        public static final int ISO_8859_2  = 0x05;
        public static final int ISO_8859_3  = 0x06;
        public static final int ISO_8859_4  = 0x07;
        public static final int ISO_8859_5  = 0x08;
        public static final int ISO_8859_6  = 0x09;
        public static final int ISO_8859_7  = 0x0A;
        public static final int ISO_8859_8  = 0x0B;
        public static final int ISO_8859_9  = 0x0C;
        public static final int SHIFT_JIS   = 0x11;
        public static final int UTF_8       = 0x6A;
        public static final int BIG5        = 0x07EA;
        public static final int UCS2        = 0x03E8;
        public static final int UTF_16      = 0x03F7;
    
        /**
         * If the encoding of given data is unsupported, use UTF_8 to decode it.
         */
        public static final int DEFAULT_CHARSET = UTF_8;  //------------ 默认字符编码 utf-8 -----------
    
    
       /**
         * The Well-known-charset Mime name.
         */
        public static final String MIMENAME_ANY_CHARSET = "*";
        public static final String MIMENAME_US_ASCII    = "us-ascii";
        public static final String MIMENAME_ISO_8859_1  = "iso-8859-1";
        public static final String MIMENAME_ISO_8859_2  = "iso-8859-2";
        public static final String MIMENAME_ISO_8859_3  = "iso-8859-3";
        public static final String MIMENAME_ISO_8859_4  = "iso-8859-4";
        public static final String MIMENAME_ISO_8859_5  = "iso-8859-5";
        public static final String MIMENAME_ISO_8859_6  = "iso-8859-6";
        public static final String MIMENAME_ISO_8859_7  = "iso-8859-7";
        public static final String MIMENAME_ISO_8859_8  = "iso-8859-8";
        public static final String MIMENAME_ISO_8859_9  = "iso-8859-9";
        public static final String MIMENAME_SHIFT_JIS   = "shift_JIS";
        public static final String MIMENAME_UTF_8       = "utf-8";
        public static final String MIMENAME_BIG5        = "big5";
        public static final String MIMENAME_UCS2        = "iso-10646-ucs-2";
        public static final String MIMENAME_UTF_16      = "utf-16";
    
        public static final String DEFAULT_CHARSET_NAME = MIMENAME_UTF_8;

    再看看MMS发送代码中的处理

    androidpackagesappsMmssrccomandroidmms ransactionHttpUtils.java

    private static AndroidHttpClient createHttpClient(Context context) {
            String userAgent = MmsConfig.getUserAgent();
            AndroidHttpClient client = AndroidHttpClient.newInstance(userAgent, context);
            HttpParams params = client.getParams();
            HttpProtocolParams.setContentCharset(params, "UTF-8"); //-------- 默认 UTF-8 ----------
    // set the socket timeout int soTimeout = MmsConfig.getHttpSocketTimeout(); if (Log.isLoggable(LogTag.TRANSACTION, Log.DEBUG)) { Log.d(TAG, "[HttpUtils] createHttpClient w/ socket timeout " + soTimeout + " ms, " + ", UA=" + userAgent); } HttpConnectionParams.setSoTimeout(params, soTimeout); return client; }

    还有彩信数据TextModel封装处理

    androidpackagesappsMmssrccomandroidmmsmodelTextModel.java

        public TextModel(Context context, String contentType, String src, RegionModel region) {
            this(context, contentType, src, CharacterSets.UTF_8, new byte[0], region); //------ 默认 UTF-8 ------
        }
    
        public TextModel(Context context, String contentType, String src,
                int charset, byte[] data, RegionModel region) {
            super(context, SmilHelper.ELEMENT_TAG_TEXT, contentType, src,
                    data != null ? data : new byte[0], region);
    
            if (charset == CharacterSets.ANY_CHARSET) { //--- 对于这种指定编码的,如果为ANY_CHARSET,则默认ISO_8859_1
                // By default, we use ISO_8859_1 to decode the data
                // which character set wasn't set.
                charset = CharacterSets.ISO_8859_1;
            }
            mCharset = charset;
            mText = extractTextFromData(data);
            mSize = mText.toString().getBytes().length;
        }
  • 相关阅读:
    分支与循环(1)
    Python+selenium基本操作二
    python+selenium的八种定位方法
    变量与字符,数字连续
    Django虚拟环境拷贝到另一台电脑,不能直接使用的问题
    django部署到服务器使用manage.py runserver简单测试
    python中将main函数写成接口后main函数中的参数不能传递问题
    mac word2016尾部下划线不能显示
    简单的秒表实例
    Math.random理解练习
  • 原文地址:https://www.cnblogs.com/antoon/p/5230059.html
Copyright © 2011-2022 走看看