ホームページ データベース mysql チュートリアル SIM卡中UCS2编码的三种格式(80,81,82)分析

SIM卡中UCS2编码的三种格式(80,81,82)分析

Jun 07, 2016 pm 03:13 PM
h http 分析する フォーマット コーディング

http://hi.baidu.com/youren4548/blog/item/fa08bd1bf61005058618bf1d.html 操作SIM卡中的数据操作主要有两个地方,一个是短信操作,还有一个通讯录操作,两种编码略有差别: 1、短信息操作: 在短信息中,默认一条短信的最大长度为140个字节。 纯ASCII字符

http://hi.baidu.com/youren4548/blog/item/fa08bd1bf61005058618bf1d.html

    操作SIM卡中的数据操作主要有两个地方,一个是短信操作,还有一个通讯录操作,两种编码略有差别:

1、短信息操作:

    在短信息中,默认一条短信的最大长度为140个字节。

    纯ASCII字符主要采用7-bit编码格式,即只是利用了字符的后7位数据,这样160个ASCII字符只占用140个字节。这样我们手机的一条短信就可以发送160个ASCII字符了。

    包含汉字的字符采用UCS2编码格式,即UNICODE的2字节编码格式。样每个字符占用两个字节,只要短信中包含中文,整条短信的字符都要采用UCS2编码,这样整个短信最多就只能发送70个字符了。

2、通讯录操作:

    通讯录中的姓名长度限制不一样,本人使用的TD模块限制长度为14个字节。

    单独的ASCII字符正常都使用8-bit编码格式,即每个字节都占用8位,这也是最为正常的存储格式了。

    如果包含中文等字符,则正常采用80编码格式,即整个姓名字符以80开头,后面跟上UCS2数据,但有些情况下又会采用81或者82开头。

  a) 80 开头:

    80开头的为ucs2格式(注意:后面的字符必须有中文才行,否则可能是以80开头的纯ASCII字符串),大头在前,小头在后。

    例1:中国

    UNICODE编码为:4E2D56FD

    用ucs2的80方案表示是:804E2D56FD

    例2:杜10娘

    UNICODE编码为:675C003100305A18

    用ucs2的80方案表示是:80675C003100305A18

    显然只要有中文,数字也得占用两个字节。


   b) 81 开头:

     81开头的格式中,包含一个基址(一个字节)。有这个基址,就可以用一个字节表示一个ucs2字符了。

     在格式上,81是标识,后一个字节表示整个字符串长度,再后面一个字节是基址,再往后的就都是数据了。先举一例:

     例3:杜杜杜

     UNICODE编码为:675C675C675C

     用ucs2的80方案表示是:80675C675C675C

     用ucs2的81方案表示是:8103CEDCDCDC

     分析一下UCS2的81方案:8103CEDCDCDC

     81:为标记

     03:表示整个字符串为3个字符

     CE:一个字节为基址。解析的方法为:将基址(CE)左移七位,并将最高位置为0,最低位再补一个0(这样就16位啦)。此时基

     址变为0x6700,然后再判断后面的数据字节。

     DCDCDC:3个数据字节 DC, DC, DC 。如果数据字节的最高位为0,则认为此字节是一个ASCII字符。如果数据字节的最高位为

     1,则低7位为基址的一个偏移,实际的UCS2字符为基址加上这个偏移值。由于此处三个数据字节最高位都为1,则实际的3个字符的

     偏移值为:5C, 5C, 5C。实际的UCS2编码为: 0x675C 0x675C 0x675C, 此处我们就看的明白了。

     例4:一丁丂七丄丅               (注:这些字符属于GBK字符集)

     UNICODE编码为:4E004E014E024E034E044E05

     用ucs2的80方案表示是:804E004E014E024E034E044E05

     用ucs2的81方案表示是:81069C808182838485

     分析一下UCS2的81方案:81069C808182838485

     81:为标记

     06:表示整个字符串为6个字符

     9C:一个字节为基址。解析的方法为:将基址(9C)左移七位,并将最高位置为0,最低位再补一个0(这样就16位啦)。此时基址

     变为0x4E00,然后再判断后面的数据字节。

     808182838485:6个数据字节 80,81,82,83,84,85 。由于此处六个数据字节最高位都为1,则实际的6个字符的偏移值为:00, 

     01,02,03,04,05。实际的UCS2编码为:0x4E00,0x4E01,0x4E02,0x4E03,0x4E04,0x4E05。 OK。

 

   c) 82 开头:

     82开头的格式中,包含一个基址(两个字节)。有这个基址,就可以用一个字节表示一个ucs2字符了。

     在格式上,81是标识,后一个字节表示整个字符串长度,再后面两个字节是基址,再往后的就都是数据了。先举一例:

     例5:8025EF芳

     UNICODE编码为:00380030003200350045004682B3

     用ucs2的80方案表示是:8000380030003200350045004682B3

     用ucs2的81方案表示是:(因为格式的限制,最多容纳128个中文和127个英文,所以此处无法用81格式表示)

     用ucs2的82方案表示是:82078280383032354546B3

     分析一下UCS2的82方案:82078280383032354546B3

     82:为标记

     07:表示整个字符串为7个字符

     8280:两个字节为基址。

     383032354546B3:7个数据字节 38,30,32,35,45,46,B3。如果数据字节的最高位为0,则认为此字节是一个ASCII字符。如果

     数据字节的最高位为1,低7位为基址的一个偏移,实际的UCS2字符为基址加上这个偏移值。由于此处七个数据字节的前六个字节最高

     位为0,所以表示6个ASCII字符0x38,0x30,0x32,0x35,0x45,即8025EF。第七个字节的最高位为1,则此数据的

     偏移值为0x33,需要加上基址 0x8280,UCS2编码为0x82B3(

     例6:杜杜1

     UNICODE编码为:675C675C0031

     用ucs2的80方案表示是:80675C675C0031

     用ucs2的81方案表示是:8103CEDCDC31

     用ucs2的82方案表示是:82036700DCDC31

     分析一下UCS2的82方案:82036700DCDC31

     82:为标记

     03:表示整个字符串为6个字符

     6700:两个字节为基址。

     DCDC31:36个数据字节 DC,DC,31。由于此处三个字节的前两个字节最高位为1,则此数据的偏移值为0x5C,需要加上基址

     0x6700,UCS2编码为:0x675C()。第三个字节的最高位为0,所以表示一个ASCII字符:0x31,即 1 。


     此处只是稍微分析了一下UCS2三种格式(80,81,82)的解码,想必知道了各个字段的含义,编码也就轻松多了。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

qq メールボックス形式の記述方法 qq メールボックス形式とは何ですか? qq メールボックス形式の記述方法 qq メールボックス形式とは何ですか? Feb 22, 2024 pm 03:40 PM

QQメール:QQnumber@qq.com、英語QQメール:英語またはnumbers@qq.com、foxmailメールアカウント:独自のアカウントを設定@foxmail.com、携帯電話メールアカウント:携帯電話番号@qq.com。チュートリアル 適用モデル: iPhone13 システム: IOS15.3 バージョン: QQ メールボックス 6.3.3 分析 1QQ メールボックスには 4 つの形式があり、一般的に使用される QQ メールボックス: QQ number@qq.com、英語 QQ メールボックス: 英語またはnumbers@qq.com、foxmail 電子メールアカウント:自分のアカウント@foxmail.com、携帯電話の電子メールアカウント:携帯電話番号@qq.comを設定します。補足: qq メールボックスとは何ですか? 1 最も初期の QQ メールボックスは QQ ユーザー間のみでした

C++ を使用して HTTP ストリーミングを実装するにはどうすればよいですか? C++ を使用して HTTP ストリーミングを実装するにはどうすればよいですか? May 31, 2024 am 11:06 AM

C++ で HTTP ストリーミングを実装するにはどうすればよいですか? Boost.Asio と asiohttps クライアント ライブラリを使用して、SSL ストリーム ソケットを作成します。サーバーに接続し、HTTP リクエストを送信します。 HTTP 応答ヘッダーを受信して​​出力します。 HTTP 応答本文を受信して​​出力します。

DreamWeaver CMS のセカンダリディレクトリを開けない原因の分析 DreamWeaver CMS のセカンダリディレクトリを開けない原因の分析 Mar 13, 2024 pm 06:24 PM

タイトル: DreamWeaver CMS のセカンダリディレクトリを開けない原因と解決策の分析 Dreamweaver CMS (DedeCMS) は、さまざまな Web サイトの構築に広く使用されている強力なオープンソースのコンテンツ管理システムです。ただし、Web サイトの構築中に、セカンダリ ディレクトリを開けない状況が発生し、Web サイトの通常の動作に問題が発生することがあります。この記事では、セカンダリ ディレクトリを開けない考えられる理由を分析し、この問題を解決するための具体的なコード例を示します。 1. 考えられる原因分析: 疑似静的ルール構成の問題: 使用中

GenAI に基づいてコーディングのパフォーマンスを向上させる方法を 1 つの記事で学びましょう GenAI に基づいてコーディングのパフォーマンスを向上させる方法を 1 つの記事で学びましょう Apr 01, 2024 pm 06:49 PM

こんにちは、私の名前はルーガです。今日は人工知能 (AI) の生態分野に関連するテクノロジー、GenAI についてお話します。急速な技術革新と差別化されたビジネスシナリオという課題に直面し、従来のコーディング手法は慣れ始めており、増大する需要に完全に対応できなくなっています。同時に、新興の汎用 GenAI (人工知能テクノロジー) は、この需要を満たす大きな可能性を秘めています。 GenAIは人工知能テクノロジーの代表として、その強力な可能性と機能によりあらゆる分野で広く使用され始めています。さまざまなシナリオでのコーディングのニーズを自動的に学習して適応できるため、コーディングの効率と品質が大幅に向上します。ディープラーニングとモデルの最適化を通じて、GenAI はさまざまなデータを正確に理解することができます。

HTTP 503エラーの解決方法 HTTP 503エラーの解決方法 Mar 12, 2024 pm 03:25 PM

解決策: 1. 再試行: 一定時間待ってから再試行するか、ページを更新できます; 2. サーバーの負荷を確認します: サーバーの CPU、メモリ、およびディスクの使用状況を確認します。容量制限を超えている場合は、次のことを試してください。サーバー構成を最適化するか、サーバーの容量を増やします サーバー リソース; 3. サーバーのメンテナンスとアップグレードを確認します: サーバーが通常に戻るまで待つしかありません; 4. ネットワーク接続を確認します: ネットワーク接続が安定していることを確認し、ネットワークが正常に動作しているかどうかを確認しますデバイス、ファイアウォール、またはプロキシ設定が正しいことを確認します; 5. キャッシュまたは CDN 構成が正しいことを確認します; 6. サーバー管理者などに連絡します。

Tencent の主要なプログラミング言語が Go であるかどうかを分析する Tencent の主要なプログラミング言語が Go であるかどうかを分析する Mar 27, 2024 pm 04:21 PM

タイトル: テンセントの主要なプログラミング言語は Go ですか: 詳細な分析 中国の大手テクノロジー企業として、テンセントはプログラミング言語の選択において常に多くの注目を集めてきました。近年、テンセントは主に Go を主要なプログラミング言語として採用していると考える人もいます。この記事では、Tencent の主要なプログラミング言語が Go であるかどうかについて詳細な分析を行い、この見解を裏付ける具体的なコード例を示します。 1. Tencent における Go 言語の適用 Go は、Google によって開発されたオープンソースのプログラミング言語であり、その効率性、同時実行性、シンプルさにより多くの開発者に愛されています。

404エラーの原因と解決策を徹底調査 404エラーの原因と解決策を徹底調査 Feb 25, 2024 pm 12:21 PM

HTTP ステータス コード 404 の原因と解決策を探る はじめに: Web を閲覧する過程で、HTTP ステータス コード 404 が頻繁に発生します。このステータス コードは、サーバーが要求されたリソースを見つけることができなかったことを示します。この記事では、HTTP ステータス コード 404 の原因を調査し、いくつかの解決策を紹介します。 1. HTTP ステータス コード 404 の理由: 1.1 リソースが存在しない: 最も一般的な理由は、要求されたリソースがサーバー上に存在しないことです。これは、ファイルが誤って削除された、名前が間違っている、パスが間違っているなどが原因である可能性があります。

Golang を使用して HTTP ファイル アップロードのセキュリティを実装するにはどうすればよいですか? Golang を使用して HTTP ファイル アップロードのセキュリティを実装するにはどうすればよいですか? Jun 01, 2024 pm 02:45 PM

Golang で HTTP ファイル アップロード セキュリティを実装するには、次の手順に従う必要があります。 ファイル タイプを確認します。ファイルサイズを制限します。ウイルスやマルウェアを検出します。ファイルを安全に保管します。

See all articles