• 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;
        }
  • 相关阅读:
    Linux_磁盘管理
    Linux_安装软件包
    Linux_文件打包,压缩,解压
    Linux_系统管理命令(工作中经常使用到的)
    The method queryForMap(String, Object...) from the type JdbcTemplate refers to the missing type DataAccessException
    org.springframework.beans.factory.BeanDefinitionStoreException错误
    Java中动态代理工作流程
    Spring之<context:property-placeholder location="classpath:... "/>标签路径问题
    数据库连接问题之:Caused by: java.sql.SQLException: Connections could not be acquired from the underlying database!
    java环境变量的配置
  • 原文地址:https://www.cnblogs.com/antoon/p/5230059.html
Copyright © 2020-2023  润新知