RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

4G模組LuatOS開發(fā)|iconv字符集轉(zhuǎn)換技術(shù)篇

合宙LuatOS ? 來源:合宙LuatOS ? 作者:合宙LuatOS ? 2024-11-30 09:53 ? 次閱讀

本次我要講的是4G模組LuatOS開發(fā)的iconv字符集轉(zhuǎn)換,已整理成文,今天便分享供大家。

一、字符編碼介紹

1.1 字符編碼的定義與作用

字符編碼(Character encoding)是指將字符集中的字符編碼為指定集合中的某一對象(例如:比特模式、自然數(shù)序列、8 位組或者電脈沖),以便文本在計算機中存儲或通過通信網(wǎng)絡傳遞。常見的例子包括將拉丁字母表編碼成摩斯電碼和 ASCII,其中 ASCII 使用 7 個或 8 個二進制位進行編碼,最多可以給 256 個字符分配數(shù)值。

1.2 常見字符編碼格式

ASCII:使用 7 個或 8 個二進制位進行編碼,最多可以給 256 個字符分配數(shù)值,包括字母、數(shù)字和符號。

Unicode:一種國際標準字符集,支持世界上幾乎所有的書寫系統(tǒng),包括漢字、日文假名等。

UTF-8:Unicode 的一種變長字符編碼,由 Ken Thompson 于 1992 年創(chuàng)建,現(xiàn)已標準化為 RFC 3629。UTF-8 用 1 到 6 個字節(jié)編碼 Unicode 字符。

GB2312:中國國家標準字符集,用于簡體中文。

GBK:在 GB2312 基礎(chǔ)上擴展的字符集,支持更多的中文字符。

Big5:用于繁體中文的字符集。

1.3 字符編碼格式的使用場景和注意事項

在使用不同的字符編碼格式時,需要注意以下幾點:

兼容性:確保發(fā)送端和接收端使用相同的字符編碼,避免亂碼問題。

轉(zhuǎn)換規(guī)則:了解 Unicode 和 UTF-8 之間的轉(zhuǎn)換規(guī)則,確保正確編碼和解碼。

應用場景:根據(jù)具體應用場景選擇合適的字符編碼格式,例如 Web 開發(fā)中常用 UTF-8。

二、演示功能概述

本文演示主要展示了在不同編碼格式之間進行轉(zhuǎn)換的工具和方法,包括 Unicode(小端和大端)、GB2312 和 UTF-8 等常見編碼格式。通過使用 Lua 語言和 Air780E 核心板,實現(xiàn)了以下功能:

Unicode 小端編碼與 GB2312 編碼之間的轉(zhuǎn)換。

Unicode 大端編碼與 GB2312 編碼之間的轉(zhuǎn)換。

Unicode 小端編碼與 UTF-8 編碼之間的轉(zhuǎn)換。

Unicode 大端編碼與 UTF-8 編碼之間的轉(zhuǎn)換。

GB2312 編碼與 UTF-8 編碼之間的轉(zhuǎn)換。

此外,還提供了一個簡單的 Lua 腳本,用于在不同編碼之間進行轉(zhuǎn)換測試,并打印出轉(zhuǎn)換后的編碼數(shù)據(jù)。通過這個演示,大家可以了解不同編碼格式之間的轉(zhuǎn)換規(guī)則,并在實際應用中進行編碼轉(zhuǎn)換。

三、演示硬件環(huán)境

3.1 開發(fā)板

本文以 Air780E 核心板為例,如下圖所示:

wKgZomdAqzqAR3o8AAKSEk2OmJE599.png

詳細使用說明參考:
https://docs.openluat.com/air780e/product/

Air780E 產(chǎn)品手冊中的 《開發(fā)板Core_Air780E使用說明VX.X.X.pdf》,寫這篇文章時最新版本的使用說明為:《開發(fā)板Core_Air780E使用說明V1.0.5.pdf》 ;若在使用過程中遇到任何問題,可以直接參考這份使用說明 PDF 文檔。

3.2 SIM

在中國大陸環(huán)境下,使用移動,電信,聯(lián)通的物聯(lián)網(wǎng)卡或者手機卡都可以。

3.3 PC 電腦

WIN7以及以上版本的WINDOWS系統(tǒng)。

3.4 數(shù)據(jù)通信

1. USB 轉(zhuǎn) Type-C 數(shù)據(jù)線

它的一端是 USB 接口,另一端是 Type-C 接口。

wKgaomdAq0qAUsTPAARyY3mFiyE196.png

四、演示軟件環(huán)境

4.1 Luatools 下載調(diào)試工具

Luatools 工具支持最新固件獲取、固件打包、trace 打印及單機燒錄等功能。

工具使用說明參考:
Luatools下載和詳細使用
https://docs.openluat.com/Luatools/

4.2 源碼及固件

1. 底層 core下載地址:
https://docs.openluat.com/air780e/luatos/firmware/

由于 Air780E 默認固件不支持 iconv 庫,所以此處只放一個默認固件下載位置。要想使用 iconv 庫,則需要進行云編譯。使用指南參考:?? 云編譯 - LuatOS 文檔本文使用的支持 iconv 庫的底層 core 固件,已經(jīng)放到下文第 3 點的 iconv.zip 中,可以直接使用

2. demo 位置

本 demo 主要用于演示在 LuatOS 系統(tǒng)中不同編碼格式之間的相互轉(zhuǎn)換

demo 位置參考:
https://gitee.com/openLuat/LuatOS-Air780E/tree/master/demo/iconv

3. 源碼及固件已打包壓縮,如下所示

壓縮包中 core 文件夾存放的是固件,code 文件夾存放的是腳本代碼。

五、軟硬件資料

5.1 iconv 操作庫介紹

需要注意,Air780E 默認固件不帶 iconv 庫,需要進行云編譯添加。云編譯操作指南參考:
?? 云編譯 - LuatOS 文檔
https://wiki.luatos.com/develop/compile/Cloud_compilation.html

5.1.1 iconv 庫說明

這個庫是一個用于在 Lua 中執(zhí)行字符集轉(zhuǎn)換的模塊,稱為 iconv。它提供了多種功能,允許用戶在不同的字符編碼之間進行轉(zhuǎn)換。

5.1.2 API 接口介紹

教程所使用 API 接口參考:
iconv - iconv 操作 - luatos@air780e - 合宙文檔中心https://docs.openluat.com/air780e/luatos/api/core/iconv/

5.2 Air780E 核心板燒錄說明

5.2.1 選擇固件和腳本

1. 打開 Luatools 工具

2. 點擊項目管理測試

wKgaomdAq2iAXgSdAAEDCX-4se0962.png

3. 根據(jù)圖示操作

注意,大家只需要跟著做到第四步即可,第五步跟著后面的操作再做。

wKgZomdAq3aABUqwAARdLYrLb3o510.png

5.2.2 燒錄

1. 將 Air780E 核心板通過 USB 數(shù)據(jù)線連接至電腦,如下圖所示:

wKgZomdAq4aARsfJAAg2zJa_eP4464.png


2. 根據(jù)下方操作進行燒錄

此時就需要大家先點擊 Luatools 工具上的 下載底層與腳本/下載腳本,再執(zhí)行下方操作了。

開發(fā)板處于未開機狀態(tài):此時先按住下載模式按鍵(BOOT 鍵)不放,再長按開機鍵(POW 鍵)開機,若不出意外開發(fā)板將會進入下載模式,Luatools 工具下載進度條會開始跑,這時便可以松開 BOOT 鍵和 POW 鍵,等到工具提示下載完成即可。

開發(fā)板已經(jīng)處于開機狀態(tài):此時可以先按住 BOOT 鍵不放,再短按復位鍵(RST 鍵)后開發(fā)板會重啟并進入下載模式。

5.2.3 不同模式下的端口顯示

wKgaomdAq5qAAhd9AAQd6GgaCD4761.png

六、功能驗證

6.1 代碼示例介紹

本文所用 Lua 代碼是一個編碼轉(zhuǎn)換工具,主要用于在不同編碼格式之間進行轉(zhuǎn)換,包括 Unicode(小端和大端)、GB2312 和 UTF-8。以下是各個部分的詳細介紹:

6.1.1 核心信息

PROJECT 和 VERSION 變量用于標識項目的名稱和版本。

PRODUCT_KEY 是一個示例密鑰,用戶需根據(jù)實際情況進行替換。

通過 require 引用系統(tǒng)庫 sys 和 sysplus。

6.1.2 編碼轉(zhuǎn)換函數(shù)

Unicode 小端與 GB2312 轉(zhuǎn)換

ucs2ToGb2312(ucs2s):將 Unicode 小端編碼轉(zhuǎn)換為 GB2312 編碼。

gb2312ToUcs2(gb2312s):將 GB2312 編碼轉(zhuǎn)換為 Unicode 小端編碼。

Unicode 大端與 GB2312 轉(zhuǎn)換

ucs2beToGb2312(ucs2s):將 Unicode 大端編碼轉(zhuǎn)換為 GB2312 編碼。

gb2312ToUcs2be(gb2312s):將 GB2312 編碼轉(zhuǎn)換為 Unicode 大端編碼。

Unicode 小端與 UTF-8 轉(zhuǎn)換

ucs2ToUtf8(ucs2s):將 Unicode 小端編碼轉(zhuǎn)換為 UTF-8 編碼。

utf8ToUcs2(utf8s):將 UTF-8 編碼轉(zhuǎn)換為 Unicode 小端編碼。

Unicode 大端與 UTF-8 轉(zhuǎn)換

ucs2beToUtf8(ucs2s):將 Unicode 大端編碼轉(zhuǎn)換為 UTF-8 編碼。

utf8ToUcs2be(utf8s):將 UTF-8 編碼轉(zhuǎn)換為 Unicode 大端編碼。

GB2312 與 UTF-8 轉(zhuǎn)換

utf8ToGb2312(utf8s):將 UTF-8 編碼轉(zhuǎn)換為 GB2312 編碼。

gb2312ToUtf8(gb2312s):將 GB2312 編碼轉(zhuǎn)換為 UTF-8 編碼。

6.1.3 測試函數(shù)

代碼中定義了一些測試函數(shù),用于驗證編碼轉(zhuǎn)換的正確性,并且打印出轉(zhuǎn)換后的編碼數(shù)據(jù):

testucs2ToGb2312(ucs2s):測試 Unicode 小端到 GB2312 的轉(zhuǎn)換。

testgb2312ToUcs2(gd2312num):測試 GB2312 到 Unicode 小端的轉(zhuǎn)換。

testucs2beToGb2312(ucs2s):測試 Unicode 大端到 GB2312 的轉(zhuǎn)換。

testgb2312ToUcs2be(gb2312s):測試 GB2312 到 Unicode 大端的轉(zhuǎn)換。

testucs2ToUtf8(usc2):測試 Unicode 小端到 UTF-8 的轉(zhuǎn)換。

testutf8ToGb2312(utf8s):測試 UTF-8 到 GB2312 的轉(zhuǎn)換。

testgb2312ToUtf8(gb2312s):測試 GB2312 到 UTF-8 的轉(zhuǎn)換。

6.1.4 主循環(huán)

在主任務中,使用 sys.taskInit 定義一個循環(huán),不斷進行編碼轉(zhuǎn)換測試,每隔一秒循環(huán)一次。

6.1.5 結(jié)尾

最后,通過 sys.run()啟動系統(tǒng)運行,確保程序按預期執(zhí)行。

6.2 完整代碼展示

wKgZomdAq8uALf_xAAUYDBoLVr0292.pngwKgaomdAq9mATFtTAAS77PRxug4375.pngwKgZomdAq-aAD-LtAATvkJRqv_c641.pngwKgaomdAq_eAM1OuAATg3Uvnmh4601.pngwKgZomdArAuAN4TqAARUeJYEHVI607.pngwKgaomdArBmACCWcAATPJ9g9IeI137.pngwKgZomdArCaAXBlGAASVcljFqRs488.pngwKgZomdArDaAOCBfAAQBLu2EKFo490.pngwKgZomdArEWAdaqvAAQ7U6Oan8A505.pngwKgaomdArFSAGUTCAAUK6lxWBX8933.pngwKgaomdArGCAE-t0AABiFt9xyl4982.png

6.3 運行結(jié)果展示

通過 Luatoos 工具查看

wKgZomdArG2Ab-N1AAin-dqHYjY492.png

七、總結(jié)

本文演示通過對不同字符編碼格式的介紹和實際轉(zhuǎn)換操作,使得大家更加了解了字符編碼在計算機通信中的重要性,以及如何在不同編碼格式之間進行轉(zhuǎn)換。演示中使用的工具和硬件環(huán)境為 Air780E 核心板和 Lua 編程語言,通過實際編碼轉(zhuǎn)換的例子,展示了字符編碼轉(zhuǎn)換在實際應用中的重要性。

在演示中,我們介紹了 Unicode(小端和大端)、GB2312 和 UTF-8 等常見編碼格式,并展示了如何在 Lua 中使用 iconv 庫進行編碼轉(zhuǎn)換。通過這個演示,大家可以了解到不同編碼格式之間的差異,以及在不同場景下如何選擇合適的編碼格式。

此外,我們還提供了一個簡單的 Lua 腳本,用于在不同編碼之間進行轉(zhuǎn)換測試,并打印出轉(zhuǎn)換后的編碼數(shù)據(jù)。這個腳本可以幫助大家更好地理解和掌握字符編碼轉(zhuǎn)換的原理和方法。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 編碼
    +關(guān)注

    關(guān)注

    6

    文章

    940

    瀏覽量

    54814
  • 字符
    +關(guān)注

    關(guān)注

    0

    文章

    233

    瀏覽量

    25199
  • 模組
    +關(guān)注

    關(guān)注

    6

    文章

    1487

    瀏覽量

    30360
  • LuatOS
    +關(guān)注

    關(guān)注

    0

    文章

    76

    瀏覽量

    1936
收藏 人收藏

    評論

    相關(guān)推薦

    4G 模組 HTTP 網(wǎng)絡協(xié)議應用 白嫖版!

    今天我們來白嫖的是Air780E模組LuatOS開發(fā)4G通信中HTTP網(wǎng)絡協(xié)議的應用,實現(xiàn)模組和服務器之間數(shù)據(jù)的傳輸,詳細介紹硬件環(huán)境、軟件
    的頭像 發(fā)表于 10-30 14:22 ?778次閱讀
    <b class='flag-5'>4G</b> <b class='flag-5'>模組</b> HTTP 網(wǎng)絡協(xié)議應用 白嫖版!

    如何查詢Oracle client端的字符集

    什么是Oracle字符集?如何查詢dmp文件的字符集?如何查詢Oracle client端的字符集
    發(fā)表于 05-26 06:42

    怎樣去使用C語言字符集呢?有哪些規(guī)則

    C語言字符集的特點有哪些呢?怎樣去使用C語言字符集呢?有哪些規(guī)則?
    發(fā)表于 02-25 07:43

    python正則表達式字符集

    字符集是由一對方括號 “[]” 括起來的字符集合。使用字符集,可以匹配多個字符中的一個。舉個例子,比如你使用 C[ET]O 匹配到的是 CEO 或 CTO ,也就是說 [ET] 代表的
    發(fā)表于 03-17 16:48

    LCD液晶顯示漢字字符集

    LCD液晶顯示漢字字符集
    發(fā)表于 12-23 02:02 ?0次下載

    字符集字符集編碼詳解

    字符集字符集編碼詳解
    發(fā)表于 09-12 08:33 ?4次下載
    <b class='flag-5'>字符集</b>與<b class='flag-5'>字符集</b>編碼詳解

    一文帶你搞懂字符集編碼

    軟件開發(fā)人員經(jīng)常遇到“中文亂碼”、“軟件不能顯示日文”等類似問題。真相只有一個——對字符集編碼沒有一個系統(tǒng)的認知。
    的頭像 發(fā)表于 06-09 10:20 ?1498次閱讀
    一文帶你搞懂<b class='flag-5'>字符集</b>編碼

    mysql8.0默認字符集是什么

    MySQL 8.0 默認字符集是 utf8mb4。 MySQL 8.0 是當前最新的開源關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由Oracle公司開發(fā)和維護。MySQL 8.0 默認字符集是 utf8m
    的頭像 發(fā)表于 11-16 14:48 ?1799次閱讀

    關(guān)于4G模組LuatOS開發(fā):通用加解密函數(shù)(crypto)|全攻略

    本次我要說的攻略是關(guān)于4G模組LuatOS開發(fā)的通用加解密函數(shù),我以我常用的Air780E模組為例子供大家參考。
    的頭像 發(fā)表于 11-30 09:52 ?234次閱讀
    關(guān)于<b class='flag-5'>4G</b><b class='flag-5'>模組</b><b class='flag-5'>LuatOS</b><b class='flag-5'>開發(fā)</b>:通用加解密函數(shù)(crypto)|全攻略

    LuatOS開發(fā)4G模組隨機數(shù)(random)|實戰(zhàn)指南

    本次學習的實戰(zhàn)是關(guān)于4G模組LuatOS開發(fā)的隨機數(shù)示例指南,希望大家有所收獲。
    的頭像 發(fā)表于 11-30 09:51 ?177次閱讀
    <b class='flag-5'>LuatOS</b><b class='flag-5'>開發(fā)</b>之<b class='flag-5'>4G</b><b class='flag-5'>模組</b>隨機數(shù)(random)|實戰(zhàn)指南

    Air780E模組LuatOS開發(fā)的位運算(bit)教程!

    本次我們要學習的是4G模組Air780E的LuatOS開發(fā),關(guān)于位運算(bit)教程分享給大家。
    的頭像 發(fā)表于 11-26 11:58 ?133次閱讀
    Air780E<b class='flag-5'>模組</b><b class='flag-5'>LuatOS</b><b class='flag-5'>開發(fā)</b>的位運算(bit)教程<b class='flag-5'>篇</b>!

    4G模組Air780E的LuatOS開發(fā):關(guān)于通用加解密函數(shù)(crypto)教程!

    本次我將講解低功耗4G模組Air780E的LuatOS開發(fā),關(guān)于通用加解密函數(shù)(crypto)教程分享給大家。我會從加解密概述、演示功能概述、硬件準備、軟件環(huán)境、API 說明等全面講述
    的頭像 發(fā)表于 12-01 15:50 ?190次閱讀
    <b class='flag-5'>4G</b><b class='flag-5'>模組</b>Air780E的<b class='flag-5'>LuatOS</b><b class='flag-5'>開發(fā)</b>:關(guān)于通用加解密函數(shù)(crypto)教程!

    解析Air780E模組LuatOS開發(fā)的隨機數(shù)(random) 示例

    本文主要解析的是低功耗4G模組Air780E的LuatOS開發(fā)隨機數(shù)(random)實例,我以整理成文分享給大家。
    的頭像 發(fā)表于 11-29 20:23 ?114次閱讀
    解析Air780E<b class='flag-5'>模組</b><b class='flag-5'>LuatOS</b><b class='flag-5'>開發(fā)</b>的隨機數(shù)(random) 示例<b class='flag-5'>篇</b>

    4G模組Air780E的LuatOS開發(fā)之位運算(bit)示例

    本文我要說的是低功耗4G模組Air780E的LuatOS開發(fā),關(guān)于位運算(bit)示例,我將詳細解析分享給大家。
    的頭像 發(fā)表于 12-02 14:33 ?158次閱讀
    <b class='flag-5'>4G</b><b class='flag-5'>模組</b>Air780E的<b class='flag-5'>LuatOS</b><b class='flag-5'>開發(fā)</b>之位運算(bit)示例

    來來來,看這里:低功耗模組LuatOS開發(fā)的日志輸出!

    本文以低功耗4G模組Air780E為例,學會低功耗模組LuatOS開發(fā)的日志輸出,積累技術(shù)。
    的頭像 發(fā)表于 12-05 09:09 ?143次閱讀
    來來來,看這里:低功耗<b class='flag-5'>模組</b><b class='flag-5'>LuatOS</b><b class='flag-5'>開發(fā)</b>的日志輸出!
    RM新时代网站-首页