當(dāng)前位置:首頁(yè) > 公眾號(hào)精選 > CPP開發(fā)者
[導(dǎo)讀]計(jì)算機(jī)起源于美國(guó),上個(gè)世紀(jì),他們對(duì)英語(yǔ)字符與二進(jìn)制位之間的關(guān)系做了統(tǒng)一規(guī)定,并制定了一套字符編碼規(guī)則,這套編碼規(guī)則被稱為ASCII編碼ASCII編碼一共定義了128個(gè)字符的編碼規(guī)則,用七位二進(jìn)制表示(0x00-0x7F),這些字符組成的集合就叫做ASCII字符集隨著計(jì)算機(jī)的普及,...

計(jì)算機(jī)起源于美國(guó),上個(gè)世紀(jì),他們對(duì)英語(yǔ)字符與二進(jìn)制位之間的關(guān)系做了統(tǒng)一規(guī)定,并制定了一套字符編碼規(guī)則,這套編碼規(guī)則被稱為ASCII編碼

ASCII 編碼一共定義了128個(gè)字符的編碼規(guī)則,用七位二進(jìn)制表示 ( 0x00 - 0x7F ), 這些字符組成的集合就叫做 ASCII 字符集

隨著計(jì)算機(jī)的普及,在不同的地區(qū)和國(guó)家又出現(xiàn)了很多字符編碼,比如: 大陸的 GB2312、港臺(tái)的 BIG5, 日本的 Shift JIS等等

由于字符編碼不同,計(jì)算機(jī)在不同國(guó)家之間的交流變得很困難,經(jīng)常會(huì)出現(xiàn)亂碼的問題,比如:對(duì)于同一個(gè)二進(jìn)制數(shù)據(jù),不同的編碼會(huì)解析出不同的字符

當(dāng)互聯(lián)網(wǎng)迅猛發(fā)展,地域限制打破之后,人們迫切的希望有一種統(tǒng)一的規(guī)則, 對(duì)所有國(guó)家和地區(qū)的字符進(jìn)行編碼,于是 Unicode 就出現(xiàn)了

Unicode 簡(jiǎn)介

Unicode 是國(guó)際標(biāo)準(zhǔn)字符集,它將世界各種語(yǔ)言的每個(gè)字符定義一個(gè)唯一的編碼,以滿足跨語(yǔ)言、跨平臺(tái)的文本信息轉(zhuǎn)換

Unicode 字符集的編碼范圍是?0x0000 - 0x10FFFF?, 可以容納一百多萬(wàn)個(gè)字符, 每個(gè)字符都有一個(gè)獨(dú)一無(wú)二的編碼,也即每個(gè)字符都有一個(gè)二進(jìn)制數(shù)值和它對(duì)應(yīng),這里的二進(jìn)制數(shù)值也叫?碼點(diǎn)?, 比如:漢字?"中"?的 碼點(diǎn)是?0x4E2D, 大寫字母?A?的碼點(diǎn)是?0x41, 具體字符對(duì)應(yīng)的 Unicode 編碼可以查詢?Unicode字符編碼表

字符集和字符編碼

字符集是很多個(gè)字符的集合,例如 GB2312 是簡(jiǎn)體中文的字符集,它收錄了六千多個(gè)常用的簡(jiǎn)體漢字及一些符號(hào),數(shù)字,拼音等字符

字符編碼是 字符集的一種實(shí)現(xiàn)方式,把字符集中的字符映射為特定的字節(jié)或字節(jié)序列,它是一種規(guī)則

比如:Unicode 只是字符集,UTF-8、UTF-16、UTF-32 才是真正的字符編碼規(guī)則

Unicode 字符存儲(chǔ)

Unicode 是一個(gè)符號(hào)集, 它只規(guī)定了每個(gè)符號(hào)的二進(jìn)制值,但是符號(hào)具體如何存儲(chǔ)它并沒有規(guī)定

前面提到, Unicode 字符集的編碼范圍是?0x0000 - 0x10FFFF,因此需要 1 到 3 個(gè)字節(jié)來(lái)表示

那么,對(duì)于三個(gè)字節(jié)的 Unicode字符,計(jì)算機(jī)怎么知道它表示的是一個(gè)字符而不是三個(gè)字符呢 ?

如果所有字符都用三個(gè)字節(jié)表示,那么對(duì)于那些一個(gè)字節(jié)就能表示的字符來(lái)說,有兩個(gè)字節(jié)是無(wú)意義的,對(duì)于存儲(chǔ)來(lái)說,這是極大的浪費(fèi),假如 , 一個(gè)普通的文本, 大部分字符都只需一個(gè)字節(jié)就能表示,現(xiàn)在如果需要三個(gè)字節(jié)才能表示,文本的大小會(huì)大出三倍左右

因此,Unicode 出現(xiàn)了多種存儲(chǔ)方式,常見的有 UTF-8、UTF-16、UTF-32,它們分別用不同的二進(jìn)制格式來(lái)表示 Unicode 字符

UTF-8、UTF-16、UTF-32 中的 "UTF" 是 "Unicode Transformation Format" 的縮寫,意思是"Unicode 轉(zhuǎn)換格式",后面的數(shù) 字表明至少使用多少個(gè)比特位來(lái)存儲(chǔ)字符, 比如:UTF-8 最少需要8個(gè)比特位也就是一個(gè)字節(jié)來(lái)存儲(chǔ),對(duì)應(yīng)的, UTF-16 和 UTF-32 分別需要最少 2 個(gè)字節(jié) 和 4 個(gè)字節(jié)來(lái)存儲(chǔ)

UTF-8 編碼

UTF-8: 是一種變長(zhǎng)字符編碼,被定義為將碼點(diǎn)編碼為 1 至 4 個(gè)字節(jié),具體取決于碼點(diǎn)數(shù)值中有效二進(jìn)制位的數(shù)量

UTF-8 的編碼規(guī)則:

  1. 對(duì)于單字節(jié)的符號(hào),字節(jié)的第一位設(shè)為?0,后面 7 位為這個(gè)符號(hào)的 Unicode 碼。因此對(duì)于英語(yǔ)字母,UTF-8 編碼和 ASCII 碼是相同的, 所以 UTF-8 能兼容 ASCII 編碼,這也是互聯(lián)網(wǎng)普遍采用 UTF-8 的原因之一

  1. 對(duì)于?n?字節(jié)的符號(hào)(?n > 1),第一個(gè)字節(jié)的前?n?位都設(shè)為?1,第?n 1?位設(shè)為?0,后面字節(jié)的前兩位一律設(shè)為?10?。剩下的沒有提及的二進(jìn)制位,全部為這個(gè)符號(hào)的 Unicode 碼

下表是Unicode編碼對(duì)應(yīng)UTF-8需要的字節(jié)數(shù)量以及編碼格式

Unicode編碼范圍(16進(jìn)制)UTF-8編碼方式(二進(jìn)制)
000000 - 00007F0xxxxxxx?ASCII碼
000080 - 0007FF110xxxxx?10xxxxxx
000800 - 00FFFF1110xxxx?10xxxxxx?10xxxxxx
01 0000 - 10 FFFF11110xxx?10xxxxxx?10xxxxxx?10xxxxxx
表格中第一列是Unicode編碼的范圍,第二列是對(duì)應(yīng)UTF-8編碼方式,其中紅色的二進(jìn)制?"1"?和?"0"?是固定的前綴, 字母?x?表示可用編碼的二進(jìn)制位

根據(jù)上面表格,要解析 UTF-8 編碼就很簡(jiǎn)單了,如果一個(gè)字節(jié)第一位是?0?,則這個(gè)字節(jié)就是一個(gè)單獨(dú)的字符,如果第一位是?1?,則連續(xù)有多少個(gè)?1?,就表示當(dāng)前字符占用多少個(gè)字節(jié)

下面以?"中"?字 為例來(lái)說明 UTF-8 的編碼,具體的步驟如下圖, 為了便于說明,圖中左邊加了?1,2,3,4?的步驟編號(hào)

首先查詢?"中"?字的 Unicode 碼?0x4E2D, 轉(zhuǎn)成二進(jìn)制, 總共有 16 個(gè)二進(jìn)制位, 具體如上圖 步驟1 所示

通過前面的 Unicode 編碼和 UTF-8 編碼的表格知道,Unicode 碼?0x4E2D?對(duì)應(yīng)?000800 - 00FFFF?的范圍,所以,?"中"?字的 UTF-8 編碼 需要?3?個(gè)字節(jié),即格式是?1110xxxx?10xxxxxx?10xxxxxx

然后從?"中"?字的最后一個(gè)二進(jìn)制位開始,按照從后向前的順序依次填入格式中的?x?字符,多出的二進(jìn)制補(bǔ)為?0, 具體如上圖 步驟2、步驟3 所示

于是,就得到了?"中"?的 UTF-8 編碼是?11100100?10111000?10101101, 轉(zhuǎn)換成十六進(jìn)制就是?0xE4B8AD, 具體如上圖 步驟4 所示

UTF-16 編碼

UTF-16 也是一種變長(zhǎng)字符編碼, 這種編碼方式比較特殊, 它將字符編碼成 2 字節(jié) 或者 4 字節(jié)

具體的編碼規(guī)則如下:

  1. 對(duì)于 Unicode 碼小于?0x10000?的字符, 使用?2?個(gè)字節(jié)存儲(chǔ),并且是直接存儲(chǔ) Unicode 碼,不用進(jìn)行編碼轉(zhuǎn)換

  1. 對(duì)于 Unicode 碼在?0x10000?和?0x10FFFF?之間的字符,使用?4?個(gè)字節(jié)存儲(chǔ),這?4?個(gè)字節(jié)分成前后兩部分,每個(gè)部分各兩個(gè)字節(jié),其中,前面兩個(gè)字節(jié)的前?6?位二進(jìn)制固定為?110110,后面兩個(gè)字節(jié)的前 6 位二進(jìn)制固定為?110111, 前后部分各剩余 10 位二進(jìn)制表示符號(hào)的 Unicode 碼 減去?0x10000?的結(jié)果

  1. 大于?0x10FFFF?的 Unicode 碼無(wú)法用 UTF-16 編碼

下表是Unicode編碼對(duì)應(yīng)UTF-16編碼格式

Unicode編碼范圍(16進(jìn)制)具體Unicode碼(二進(jìn)制)UTF-16編碼方式(二進(jìn)制)字節(jié)
0000 0000 - 0000 FFFFxxxxxxxx xxxxxxxxxxxxxxxx xxxxxxxx2
0001 0000 - 0010 FFFFyy yyyyyyyy xx xxxxxxxx110110yy yyyyyyyy?110111xx xxxxxxxx4
表格中第一列是Unicode編碼的范圍,第二列是 具體Unicode碼的二進(jìn)制 ( 第二行的第二列表示的是 Unicode 碼 減去?0x10000?后的二進(jìn)制 ) , 第三列是對(duì)應(yīng)UTF-16編碼方式,其中紅色的二進(jìn)制?"1"?和?"0"?是固定的前綴, 字母?x?和?y?表示可用編碼的二進(jìn)制位, 第四列表示 編碼占用的字節(jié)數(shù)

前面提到過,"中"?字的 Unicode 碼是?4E2D, 它小于?0x10000,根據(jù)表格可知,它的 UTF-16 編碼占兩個(gè)字節(jié),并且和 Unicode 碼相同,所以?"中"?字的 UTF-16 編碼為?4E2D

我從?Unicode字符表網(wǎng)站?找了一個(gè)老的南阿拉伯字母, 它的 Unicode 碼是:?0x10A6F?, 可以訪問?https://unicode-table.com/cn/10A6F/?查看字符的說明, Unicode 碼對(duì)應(yīng)的字符如下圖所示

下面以這個(gè) 老的南阿拉伯字母的 Unicode 碼?0x10A6F?為例來(lái)說明 UTF-16?4?字節(jié)的編碼,具體步驟如下,為了便于說明,圖中左邊加了?1,2,3,4 、5的步驟編號(hào)

首先把 Unicode 碼?0x10A6F?轉(zhuǎn)成二進(jìn)制, 對(duì)應(yīng)上圖的 步驟 1

然后把 Unicode 碼?0x10A6F?減去?0x10000, 結(jié)果為?0xA6F?并把這個(gè)值轉(zhuǎn)成二進(jìn)制?00 00000010?10 01101111,對(duì)應(yīng)上圖的 步驟 2

然后 從二進(jìn)制?00 00000010?10 01101111?的最后一個(gè)二進(jìn)制為開始,按照從后向前的順序依次填入格式中的?x?和?y?字符,多出的二進(jìn)制補(bǔ)為?0, 對(duì)應(yīng)上圖的 步驟 3、 步驟 4

于是,就計(jì)算出了 Unicode 碼?0x10A6F?的 UTF-16 編碼是?11011000 00000010?11011110 01101111?, 轉(zhuǎn)換成十六進(jìn)制就是?0xD802DE6F, 對(duì)應(yīng)上圖的 步驟 5

UTF-32 編碼

UTF-32 是固定長(zhǎng)度的編碼,始終占用 4 個(gè)字節(jié),足以容納所有的 Unicode 字符,所以直接存儲(chǔ) Unicode 碼即可,不需要任何編碼轉(zhuǎn)換。雖然浪費(fèi)了空間,但提高了效率。

UTF-8、UTF-16、UTF-32 之間如何轉(zhuǎn)換

前面介紹過,UTF-8、UTF-16、UTF-32 是 Unicode 碼表示成不同的二進(jìn)制格式的編碼規(guī)則,同樣,通過這三種編碼的二進(jìn)制表示,也能獲得對(duì)應(yīng)的 Unicode 碼,有了字符的 Unicode 碼,按照上面介紹的 UTF-8、UTF-16、UTF-32 的編碼方法 就能轉(zhuǎn)換成任一種編碼了

UTF 字節(jié)序

最小編碼單元是多字節(jié)才會(huì)有字節(jié)序的問題存在,UTF-8 最小編碼單元是一字節(jié),所以 它是沒有字節(jié)序的問題,UTF-16 最小編碼單元是 2 個(gè)字節(jié),在解析一個(gè) UTF-16 字符之前,需要知道每個(gè)編碼單元的字節(jié)序

比如:前面提到過,"中"?字的 Unicode 碼是?4E2D,?"?"?字符的 Unicode 碼是?2D4E, 當(dāng)我們收到一個(gè) UTF-16 字節(jié)流?4E2D?時(shí),計(jì)算機(jī)如何識(shí)別它表示的是字符?"中"?還是 字符?"?"?呢 ?

所以,對(duì)于多字節(jié)的編碼單元,需要有一個(gè)標(biāo)記顯式的告訴計(jì)算機(jī),按照什么樣的順序解析字符,也就是字節(jié)序,字節(jié)序分為 大端字節(jié)序 和 小端字節(jié)序

小端字節(jié)序簡(jiǎn)寫為 LE( Little-Endian ), 表示 低位字節(jié)在前,高位字節(jié)在后, 高位字節(jié)保存在內(nèi)存的高地址端,而低位字節(jié)保存在內(nèi)存的低地址端

大端字節(jié)序簡(jiǎn)寫為 BE( Big-Endian ), 表示 高位字節(jié)在前,低位字節(jié)在后,高位字節(jié)保存在內(nèi)存的低地址端,低位字節(jié)保存在在內(nèi)存的高地址端

下面以?0x4E2D?為例來(lái)說明大端和小端,具體參見下圖:

數(shù)據(jù)是從高位字節(jié)到低位字節(jié)顯示的,這也更符合人們閱讀數(shù)據(jù)的習(xí)慣,而內(nèi)存地址是從低地址向高地址增加

所以,字符0x4E2D?數(shù)據(jù)的高位字節(jié)是?4E,低位字節(jié)是?2D

按照大端字節(jié)序的高位字節(jié)保存內(nèi)存低地址端的規(guī)則,4E?保存到低內(nèi)存地址?0x10001?上,2D?則保存到高內(nèi)存地址?0x10002?上

對(duì)于小端字節(jié)序,則正好相反,數(shù)據(jù)的高位字節(jié)保存到內(nèi)存的高地址端,低位字節(jié)保存到內(nèi)存低地址端的,所以?4E?保存到高內(nèi)存地址?0x10002?上,2D?則保存到低內(nèi)存地址?0x10001?上

BOM

BOM 是 byte-order mark 的縮寫,是 "字節(jié)序標(biāo)記" 的意思, 它常被用來(lái)當(dāng)做標(biāo)識(shí)文件是以 UTF-8、UTF-16 或 UTF-32 編碼的標(biāo)記

在 Unicode 編碼中有一個(gè)叫做 "零寬度非換行空格" 的字符 ( ZERO WIDTH NO-BREAK SPACE ), 用字符?FEFF?來(lái)表示

對(duì)于 UTF-16 ,如果接收到以?FEFF?開頭的字節(jié)流, 就表明是大端字節(jié)序,如果接收到?FFFE, 就表明字節(jié)流 是小端字節(jié)序

UTF-8 沒有字節(jié)序問題,上述字符只是用來(lái)標(biāo)識(shí)它是 UTF-8 文件,而不是用來(lái)說明字節(jié)順序的。"零寬度非換行空格" 字符 的 UTF-8 編碼是?EF BB BF, 所以如果接收到以?EF BB BF?開頭的字節(jié)流,就知道這是UTF-8 文件


下面的表格列出了不同 UTF 格式的固定文件頭

UTF編碼固定文件頭
UTF-8EF BB BF
UTF-16LEFF FE
UTF-16BEFE FF
UTF-32LEFF FE 00 00
UTF-32BE00 00 FE FF

根據(jù)上面的 固定文件頭,下面列出了?"中"?字在文件中的存儲(chǔ) ( 包含文件頭 )

編碼固定文件頭
Unicode 編碼0X004E2D
UTF-8EF BB BF?4E 2D
UTF-16BEFE FF?4E 2D
UTF-16LEFF FE?2D 4E
UTF-32BE00 00 FE FF?00 00 4E 2D
UTF-32LEFF FE 00 00?2D 4E 00 00

常見的字符編碼的問題

  • Redis 中文key的顯示

有時(shí)候我們需要向redis中寫入含有中文的數(shù)據(jù),然后在查看數(shù)據(jù),但是會(huì)看到一些其他的字符,而不是我們寫入的中文

上圖中,我們向redis 寫入了一個(gè) "中" 字,通過 get 命令查看的時(shí)候無(wú)法顯示我們寫入的 "中" 字

這時(shí)候加一個(gè) --raw 參數(shù),重新啟動(dòng) redis-cli 即可,也即 執(zhí)行 redis-cli --raw 命令啟動(dòng)redis客戶端,具體的如下圖所示

  • MySQL 中的 utf8 和 utf8mb4

MySQL 中的 "utf8" 實(shí)際上不是真正的 UTF-8, "utf8" 只支持每個(gè)字符最多 3 個(gè)字節(jié), 對(duì)于超過 3 個(gè)字節(jié)的字符就會(huì)出錯(cuò), 而真正的 UTF-8 至少要支持 4 個(gè)字節(jié)

MySQL 中的 "utf8mb4" 才是真正的 UTF-8


下面以 test 表為例來(lái)說明, 表結(jié)構(gòu)如下:

mysql> show create table test\G
*************************** 1. row ***************************
Table: test
Create Table: CREATE TABLE `test` (
`name` char(32) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)
向?test?表分別插入?"中"?字 和 Unicode 碼為?0x10A6F?的字符,這個(gè)字符需要從?https://unicode-table.com/cn/10A6F/?直接復(fù)制到 MySQL 控制臺(tái)上,手工輸入會(huì)無(wú)效,具體的執(zhí)行結(jié)果如下圖:

從上圖可以看出,插入?"中"?字 成功,插入?0x10A6F?字符失敗,錯(cuò)誤提示無(wú)效的字符串,\xF0\X90\XA9\xAF?正是?0x10A6F?字符的 UTF-8 編碼,占用?4?個(gè)字節(jié), 因?yàn)?MySQL 的 utf8 編碼最多只支持?3?個(gè)字節(jié),所以插入會(huì)失敗


把?test?表的字符集改成?utf8mb4?, 排序規(guī)則 改成?utf8bm4_unicode_ci, 具體如下圖所示:


字符集和排序方式修改之后,再次插入?0x10A6F?字符, 結(jié)果是成功的,具體執(zhí)行結(jié)果如下圖所示

上圖中,set names utf8mb4?是為了測(cè)試方便,臨時(shí)修改當(dāng)前會(huì)話的字符集,以便保持和 服務(wù)器一致,實(shí)際解決這個(gè)問題需要修改?my.cnf?配置中 服務(wù)器和客戶端的字符集

小結(jié)

本文從字符編碼的歷史介紹了 Unicode 出現(xiàn)的原因,接著介紹了 Unicode 字符集中 三種不同的編碼方式:UTF-8、UTF-16、UTF-32 以及它們的的編碼方法,緊接著介紹了 字節(jié)序、BOM ,最后講到了字符集在 MySQL 和 Redis 應(yīng)用中常見的問題以及解決方案 ,更多關(guān)于 Unicode 的介紹請(qǐng)參考 Unicode 的 RFC 文檔


- EOF -

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉