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;
        }
  • 相关阅读:
    [03]使用 VS2019 创建 ASP.NET Core Web 程序
    [02]为您的机器配置开发环境
    [01]从零开始学 ASP.NET Core 与 EntityFramework Core 课程介绍
    官宣 ! 52abp_Pro版本低调上线
    2019 年起如何开始学习 ABP 框架系列文章-开篇有益
    IIS配置Url重写实现http自动跳转https的重定向方法(100%解决)
    NanoFabric-ServiceFabric 操作手册
    将 ASP.NET Core 2.0 项目升级至 ASP.NET Core 2.1.3X
    ASP.Net Core 运行错误 Http Error 502.5 解决办法
    52ABP模板 ASP.Net Core 与 Angular的开源实例项目
  • 原文地址:https://www.cnblogs.com/antoon/p/5230059.html
Copyright © 2011-2022 走看看