做嵌入式LED 屏幕显示的时候,需要ST9720 中文编码,网上找了好几个版本,版本不同居然对应的code也不同!找了一个靠谱的pdf版本编码对照表,供大家参考

.....

.....

下载地址:

https://www.powertip.com.tw/upload/technical/st7920-GB.pdf

https://files.cnblogs.com/files/dcb3688/st7920-GB.pdf

https://files.cnblogs.com/files/dcb3688/ST7920c30%28ch%29.pdf

因为网上找的都是pdf格式,所以想把对照表转换成sql,找的时候直接select。

转换的方法是这样的,先把pdf转换为doc或txt,在通过读取doc或txt,依次每行插入数据库,但发现个问题,直接复制pdf内容到剪贴板粘贴到txt中的会丢失为空的占位符。比如: A1A1 就是一个空值,但直接复制到txt会是这样的:

所以,这种方法不可取,后来想到一个办法,就是每一个字符显示一行(包括code),然后通过特殊字符进行站位,等替换空格为换号(^p)后,在替换\n\r

通过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文件

https://files.cnblogs.com/files/dcb3688/st9720-txt-sql.7z

查找文字“xiao小科技欢迎您!”效果:

st9720-GB 中文编码对照表的更多相关文章

  1. js编码处理(转)

    1.       使用 JS 中的 encodeURIComponent 或 encodeURI 方法. 说明: encodeURIComponent(String) 对传递参数进行设置.不编码字符有 ...

  2. 字王·国标二级字库汉字GB内码un码三合一对照表2016版

    国标二级字库汉字GB内码un码三合一对照表 字王2016版 汉字内码表,是制作字库的基础,简单.便利的版本很少,根据实战经验,特此制作这个三合一版本的汉字.GB内码.Unicode码对照表: l 提供 ...

  3. java中文乱码解决之道(二)-----字符编码详解:基础知识 + ASCII + GB**

    在上篇博文(java中文乱码解决之道(一)-----认识字符集)中,LZ简单介绍了主流的字符编码,对各种编码都是点到为止,以下LZ将详细阐述字符集.字符编码等基础知识和ASCII.GB的详情. 一.基 ...

  4. java中文乱码解决之道(二)—–字符编码详解:基础知识 + ASCII + GB**

    原文出处:http://cmsblogs.com/?p=1412 在上篇博文(java中文乱码解决之道(一)—–认识字符集)中,LZ简单介绍了主流的字符编码,对各种编码都是点到为止,以下LZ将详细阐述 ...

  5. UTF-8,Unicode,GBK,希腊字母读法,ASCII码表,HTTP错误码,URL编码表,HTML特殊字符,汉字编码简明对照表

    UNICODE,GBK,UTF-8区别 UNICODE,GBK,UTF-8区别    简单来说,unicode,gbk和大五码就是编码的值,而utf-8,uft-16之类就是这个值的表现形式.而前面那 ...

  6. ASSIC码对照表

    编码对应字符: ✔:\u2714✘:\u2718 <script type="text/javascript"> var aaa = "\u2718" ...

  7. 4项技巧使你不再为PHP中文编码苦恼

    PHP程序设计中中文编码问题曾经困扰很多人,导致这个问题的原因其实很简单,每个国家(或区域)都规定了计算机信息交换用的字符编码集,如美国的扩展 ASCII 码,中国的 GB2312-80,日本的 JI ...

  8. 解析php开发中的中文编码问题

    其实php开发中的中文编码并没有想像的那么复杂,虽然定位和解决问题没有定规,各种运行环境也各不尽然,但后面的原理是一样的. 了解字符集的知识是解决字符问题的基础. PHP程序设计中中文编码问题曾经困扰 ...

  9. AD域属性对照表

    查看文章 AD属性对照表(一)[AD域][属性] 2011年08月25日 星期四 19:36AD属性对照表家庭电话 :“常规”标签  姓 Sn                       Y 名 gi ...

随机推荐

  1. jmeter笔记(5)--参数化--CSV Data Set Config

    为了保证脚本的可移植性,我们需要把数据提取出来作为变量,变量可以分为两类: 公用变量:IP.端口.附件路径.CSV文件路径等: 测试变量:用户名.密码.用户ID.商品ID等 使用CSV Data Se ...

  2. NPOI 图片在单元格等比缩放且居中显示

    NPOI导出的图片默认是在单元格左上方,这使得图片在单元格显示得很难看.居中,且等比缩放,才是图片在单元格上的完美展示. /// <summary> /// 图片在单元格等比缩放居中显示 ...

  3. redis5.0.3单实例简单安装记录

    redis5.0.3单实例简单安装记录 日常需要测试使用,索性记录下来,免得临时又麻烦的找资料. yum -y install make gcc-c++ cmake bison-devel ncurs ...

  4. font-spider问题【已解决】

    最近写一个项目,使用了引入的字体,然而字体太大,于是找解决方法,想要把字体压缩一下,然后找到了font-spider;font-spider使用方法这里就不多说了,网上一大把,主要是在node里面安装 ...

  5. 20155324《网络对抗》Exp2 后门原理与实践

    20155324<网络对抗>Exp2 后门原理与实践 20155324<网络对抗>Exp2 后门原理与实践 常用后门工具实践 Windows获得Linux Shell 在Win ...

  6. eclipse出现jdk版本更新导致无法启动

    启动出现的问题,截图: 解决办法: 1.找到自己jdk安装的bin目录,我的安装目录是:F:\jdk\bin 2.修改eclipse安装目录下的eclipse.ini,添加 -vmF:\jdk\bin ...

  7. Luogu P4358 密钥破解 题解报告

    题目传送门 [题目大意] 给定一个正整数N,可以被分解为两个不同的质数p和q,计算出r=(p-1)*(q-1). 然后给出了一个小于r且与r互质的整数e,已知e*d≡1(mod r),求d. 最后给定 ...

  8. python2x如何迁移代码到python3中

    2to3 - 自动Python 2到3代码转换 2to3是一个Python程序,它读取Python 2.x源代码并应用一系列修复程序将其转换为有效的Python 3.x代码.标准库包含一组丰富的修复程 ...

  9. vue路由--网站导航功能

    1.首先需要按照Vue router支持 npm install vue-router然后需要在项目中引入: import Vue from 'vue' import VueRouter from ' ...

  10. MySQL对以特定名字开头的数据库进行授权

    对以"db_1"开头的数据库进行授权 grant all privileges on `db_1%`.* to dp_admin identified by 'password'; ...