作嵌入式LED 屏幕顯示的時候,須要ST9720 中文編碼,網上找了好幾個版本,版本不一樣竟然對應的code也不一樣!找了一個靠譜的pdf版本編碼對照表,供你們參考php
.....mysql
.....sql
下載地址:數據庫
https://www.powertip.com.tw/upload/technical/st7920-GB.pdffetch
https://files.cnblogs.com/files/dcb3688/st7920-GB.pdf編碼
https://files.cnblogs.com/files/dcb3688/ST7920c30%28ch%29.pdfspa
由於網上找的都是pdf格式,因此想把對照表轉換成sql,找的時候直接select。3d
轉換的方法是這樣的,先把pdf轉換爲doc或txt,在經過讀取doc或txt,依次每行插入數據庫,但發現個問題,直接複製pdf內容到剪貼板粘貼到txt中的會丟失爲空的佔位符。好比: A1A1 就是一個空值,但直接複製到txt會是這樣的:指針
因此,這種方法不可取,後來想到一個辦法,就是每個字符顯示一行(包括code),而後經過特殊字符進行站位,等替換空格爲換號(^p)後,在替換\n\rcode
經過php讀取txt,鏈接mysql 插入數據庫
數據庫結構:
CREATE TABLE `st9720` ( `id` int(11) NOT NULL AUTO_INCREMENT, `code` char(10) NOT NULL COMMENT 'e id', `word` char(10) NOT NULL, PRIMARY KEY (`id`), KEY `code` (`code`), KEY `word` (`word`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='ST7920 GB中文編碼表';
完整PHP代碼:
$file = fopen("st9720.txt", "r"); $fonts = []; $i = 0; # 輸出文本中全部的行,直到文件結束爲止。 while (!feof($file)) { $fonts[$i] = fgets($file); # 從文件指針中讀取一行 $i++; } fclose($file); $data = []; $row = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'A', 'B', 'C', 'D', 'E', 'F']; $ii = 0; foreach ($fonts as $font) { $ii++; $font = str_replace(array("\r", "\n"), array('', ''), $font); # 177 == VIII 大於strlen==5 A2C0\r (10)==len(5) if (strlen($font) == 4 && (($ii < 177 && substr($font, 0, 1) == "A") || $ii > 177)) { $rows = 0; $head = strval($font); } else { $pre = substr($head, 0, 2); $mid = substr($head, 2, 1); $data[$pre][$mid . $row[$rows]] = $font; $rows++; } } # 鏈接到數據庫 $conn = mysqli_connect("127.0.0.1", "root", "root", "mydb"); /** * foreach ($data as $pre => $mrowvalue) { foreach ($mrowvalue as $mid => $word) { $code = $pre . $mid; $sql = "insert into st9720 (code,word) values('{$code}','{$word}')"; if (!mysqli_query($conn, $sql)) { die('Error: ' . mysqli_error($conn)); } echo "添加一條記錄"; } } //關閉鏈接 mysqli_close($conn); */ $string="xiao小科技歡迎您!"; for($i=0;$i<mb_strlen($string);$i++){ $word= mb_substr($string, $i,1); $result = $conn->query("select * from st9720 where BINARY word='{$word}'"); # 區分大小寫 if($result){ $r= $result->fetch_array(); echo "{$word} :{$r['code']} <hr>"; } }
st9720-GB.txt 與php代碼及sql文件
查找文字「xiao小科技歡迎您!」效果: