蓝牙HID模式下输出中文原理简介

news2024/11/25 14:06:27

目录

  • 前言
  • 一、蓝牙和HID简介
  • 二、Unicode编码简介
  • 三、Windows下alt键+code编码输出中文
  • 四、蓝牙HID模式下实现在手机上输入中文的原理

前言

  最近在使用蓝牙模组,对于蓝牙模组如何输出中文的原理不太清楚,所以找了一些资料简单学习了下,总结如下:

一、蓝牙和HID简介

  蓝牙是一种无线通信协议,用于短距离数据传输。它的主要功能是在电子设备之间创建无线连接,并支持数据传输。

  HID (Human Interface Device) 是一种通用设备协议,用于连接人机界面设备,如键盘、鼠标、游戏手柄等。

  当蓝牙和HID结合使用时,人机接口设备可以通过无线蓝牙连接到其他电子设备,从而实现数据传输和控制。例如,如果一个蓝牙键盘和一个电脑连接,当用户在键盘上输入字符时,它们将通过蓝牙连接发送到电脑,然后在电脑上显示出来。这种方式比传统的有线连接更加灵活和便捷,使得人机交互更加顺畅和高效。

  总之,蓝牙和HID结合使用的原理是通过蓝牙协议连接人机接口设备和其他电子设备,使得数据传输和控制更加便捷和高效。

二、Unicode编码简介

  Unicode是一种字符编码标准,旨在为世界上所有的字符提供一个唯一的数字码点。它被广泛用于计算机系统、软件和互联网上的文本表示和处理。

  Unicode采用了一个庞大的字符集,包含了几乎所有的语言文字、符号、标点符号、表情符号以及特殊符号等。每个字符都被分配了一个称为码点(code point)的唯一整数值

  Unicode的码点通常表示为以 “U+” 开头的十六进制数值。例如,汉字 “中” 在Unicode中的码点为U+4E2D。码点可以是4位、6位、或8位的十六进制数。

  Unicode的实现有多种方式,最常见的是通过不同编码方案将码点映射到字节序列以便存储和传输。常见的编码方案包括UTF-8、UTF-16和UTF-32等。

- UTF-88-bit Unicode Transformation Format)是一种变长编码,它使用14个字节来
  表示不同范围的Unicode字符。UTF-8广泛用于互联网和现代操作系统中。

- UTF-1616-bit Unicode Transformation Format)是一种定长或变长编码,使用2个或4
  个字节来表示Unicode字符。UTF-16主要用于面向Unicode的应用程序和操作系统。

- UTF-3232-bit Unicode Transformation Format)是一种定长编码,使用4个字节来表示
  每个Unicode字符。UTF-32适用于某些特殊情况下的字符处理和存储需求。

  Unicode的优势在于它提供了一个统一的字符编码标准,使得全球范围内的多语言文字能够相互兼容和交换。它消除了以前存在的字符集冲突和乱码问题,为软件开发、文本处理和跨语言通信提供了一致性和可靠性。

三、Windows下alt键+code编码输出中文

  使用 alt+code 方式输出中文是一种在 Windows 系统中输入特殊字符的方式,它通常使用 Unicode 编码来代表字符。下面是一些常用中文字符的 alt+code 值:

-(Unicode: U+4E2D, 十进制: 20013, alt+code: Alt+20013)
-(Unicode: U+6587, 十进制: 25991, alt+code: Alt+25991)
-(Unicode: U+5B57, 十进制: 23383, alt+code: Alt+23383)

  转换 UTF-8 编码为 Unicode 编码的 alt+code 值,你可以按照以下步骤来完成:

1. 找到需要转换的字符的 Unicode 编码,可以通过在线工具或 Unicode 编码表来获取。

2. 在 Windows 系统中,确保小键盘区域启用了数字锁定,并且 Num Lock 状态打开。

3. 按住 Alt 键,在键盘上使用小键盘输入数字字符对应的 alt+code 值。例如,要输入
   字符 "中" (Unicode: U+4E2D),可以按住 Alt 键,然后同时输入数字键盘上的 "2""0""0""1""3"。松开 Alt 键后,就会输入相应的中文字符。

注意:实际你在word中尝试的时候,这样操作完,需要随意按一个字母键,这个字才会在word
中打出来。我测试的时候是这样,系统是win10,word是2019版,输入法处于英文输入模式下。

关于某个汉字所对应的Unicode 编码可以通过windows上的字符映射表进行查询:

在这里插入图片描述

  请注意,使用 alt+code 方式输出中文字符需要知道字符的 Unicode 编码和对应的 alt+code 值,并且需要确保系统的键盘布局和 Num Lock 状态正确设置

  另外,GB2312 编码是中文字符编码的一种,它不支持 alt+code 输入方式,所以无法直接使用 alt+code 将 Unicode 编码转换为 GB2312 编码。如果你需要转换编码,可以通过编程方式或使用相关工具来进行转换。

Unicode和GB2312是两种不同的字符编码标准,它们之间存在如下关系:

1. GB2312是一种中国国家标准,于1980年发布,用于表示简体中文字符的编码方案。它定义
   了一个包含了6763个汉字和非汉字字符的字符集。

2. Unicode是一个全球字符编码标准,旨在为世界上所有的字符提供一个唯一的数字码点。
   Unicode的字符集比GB2312更大,包括了几乎所有的语言文字、符号、标点符号和特殊
   字符等,目前收录的字符已超过13万个。

3. GB2312是Unicode的一个子集。最早的GB2312版本将其中的第一级别(3755个字符)划为
   Unicode的代理区,通过与Unicode的映射关系实现了与Unicode的兼容。后来的GB18030
   标准进一步扩展了GB2312,并与Unicode完全兼容,覆盖了Unicode的所有码点范围。

	综上所述,GB2312是Unicode的一个子集,GB2312中的字符在Unicode中也有对应的码点。
Unicode包含了比GB2312更广泛的字符集,并提供了更全面和标准化的字符编码方案。若要在
处理中文字符时,通常建议使用Unicode或其衍生的编码方案,如UTF-8或UTF-16,以确保对
不同语言的支持和互操作性。

  目前该种方法实现中文输入只支持windows PC,不支持安卓以及苹果设备,原因如下:

	在安卓设备上,通常无法直接使用Alt Code编码来输出中文字符。Alt Code是一种在
Windows操作系统上使用的特定键盘输入方法,通过按住Alt键并在数字键盘上输入一系列
数字码,可以输入特定的字符。

	在Android设备上,一般使用虚拟键盘或触摸屏键盘来输入字符。它们通常不提供Alt Code
输入方法,而是通过选择字符、拼音输入法、手写输入法或语音输入等方式来输入中文字符。

要在Android设备上输入中文字符,可以使用以下方法:

1. 使用拼音输入法:大多数Android设备默认安装了拼音输入法,可以通过按键盘上的相应字母
   键来输入拼音,并根据提示选择相应的中文字符。

2. 使用手写输入法:Android设备通常支持手写输入法,可以使用手指或者笔在屏幕上直接书写
   中文字符,系统会根据书写进行识别并提供候选字符。

3. 使用第三方输入法:除了系统自带的输入法,还有许多第三方输入法可供选择。这些输入法提
   供更多的输入选项和功能,可以根据个人需求选择合适的输入法。

	由于Alt Code是针对Windows操作系统的特定输入方法,Android设备一般不直接支持Alt Code编码用于输入中文字符。但手写、拼音输入法等方法可以更方便地输入中文字符。

	在苹果设备上,也不支持直接使用Alt Code编码来输出中文字符。类似于Android设备,
苹果设备如iPhone、iPad和Mac使用虚拟键盘或触摸屏键盘来输入字符。

  为什么手机不支持该方式输入中文?手机上有alt键吗?

问题1:
	Alt Code编码是一种特定于Windows操作系统的方式,它要求用户按住Alt键并在数字键盘上输入
一组数字,以输入ASCII字符集中的特定字符。这种方式《依赖于物理键盘上的数字键》,而手机上的
虚拟键盘或触摸屏键盘通常没有数字键盘。
	
	虽然手机操作系统支持Unicode编码,包括中文字符,但并未提供一个类似Alt Code的方式来直接
输入特定字符。相反,通过输入法系统,用户可以更灵活地输入中文字符,并选择合适的候选字词。
	
问题2:
	大部分手机上并没有独立的Alt键。传统的物理键盘上常见的Alt键用于与其他键组合产生特殊功
能或输入特定字符,但在大多数现代智能手机上,由于屏幕尺寸的限制和用户操作的便利性考虑,已经
不再包含一个单独的Alt键。

	在手机上,输入法系统扮演了Alt键的角色,通过输入法的特殊功能键或手势,用户可以进行与
Alt键类似的操作,例如切换输入语言、切换键盘布局等。

	此外,部分手机会在虚拟键盘的辅助符号或符号页面提供一些特殊字符和符号选项,用户可以通过
切换到这些页面来快速访问一些特殊字符,但这些字符并不是通过Alt键和数字键码来输入的。

	总之,现代手机上通常没有独立的Alt键,而是通过输入法系统提供的功能键和手势来实现类似的
操作和输入特殊字符的能力。

四、蓝牙HID模式下实现在手机上输入中文的原理

  蓝牙键盘通常处于蓝牙HID(Human Interface Device)模式下,在蓝牙HID模式下,蓝牙键盘将以HID设备的身份与蓝牙主机(如电脑、智能手机等)进行通信。它使用HID协议来传输键盘按键信息给主机,并接收来自主机的控制命令,以控制特定的功能(如调整音量、播放/暂停媒体等)。

  蓝牙键盘实现在手机上输入中文的原理与在手机上使用内置键盘输入中文的原理类似。下面是一个简单的概述:

1. 连接蓝牙键盘:首先,需要将蓝牙键盘与手机进行蓝牙连接。在手机的设置中,打开蓝牙功能并
   搜索可用设备,找到蓝牙键盘并与之配对。

2. 输入法切换:一旦蓝牙键盘成功连接到手机,你需要在手机上切换输入法以使用蓝牙键盘进行
   输入。通过点击手机屏幕上的输入法切换按钮(通常是一个键盘图标),你可以选择键盘输入法。

3. 中文输入方法:在蓝牙键盘上,通常会有一个特定的键来切换到中文输入模式。当切换到中文输入
   模式后,你可以使用键盘上的字母键盘输入相应的拼音,并通过键盘上的其他按键来进行字词选择。

4. 输入法处理:当你使用蓝牙键盘输入拼音时,手机的输入法会根据你的输入提示相应的中文字符或
   词语。输入法会根据你的键盘输入进行预测和匹配,并显示候选的中文词语选项。

5. 选择输入:通过使用蓝牙键盘上的相应按键或组合键,你可以从输入法给出的候选中选择正确的
   中文字符或词语,然后将其输入到手机上的应用程序中。

	总而言之,蓝牙键盘实现在手机上输入中文的原理是通过与手机进行蓝牙连接,切换到中文输入法,
利用键盘输入拼音并选择中文字符或词语以实现中文输入。手机的输入法会处理键盘输入并提供各种中
文输入选项,然后你可以选择相应的中文字符或词语进行输入。这使得使用蓝牙键盘在手机上进行中文
输入更加方便和快捷。

!!!水平有限,欢迎各位在评论区指导交流!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/761494.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

目标检测——FasterRCNN原理与实现

目录 网络工作流程数据加载模型加载模型预测过程RPN获取候选区域FastRCNN进行目标检测 模型结构详解backboneRPN网络anchorsRPN分类RPN回归Proposal层 ROIPooling目标分类与回归 FasterRCNN的训练RPN网络的训练正负样本标记RPN网络的损失函数训练过程实现正负样本设置损失函数 …

Kubernetes 使用 helm 部署 NFS Provisioner

文章目录 1. 介绍2. 预备条件3. 部署 nfs4. 部署 NFS subdir external provisioner4.1 集群配置 containerd 代理4.2 配置代理堡垒机通过 kubeconfig 部署 1. 介绍 NFS subdir external provisioner 使用现有且已配置的NFS 服务器来支持通过持久卷声明动态配置 Kubernetes 持久…

大模型基础知识汇总

本文总结大模型相关基础知识,用于大模型学习入门 (持续更新中…) 文章目录 NLP 基础知识传统 NLP 知识NLU 与 NLG 各种任务的差异 Transformer 相关知识Pre Norm与Post Norm的区别?Bert 预训练过程手写 transformer 的 attention …

从0到1:跑团小程序开发心得笔记

背景介绍 随着健康意识的兴起,越来越多的人选择加入跑步俱乐部,不仅体验到了运动的乐趣,也感受到了人生的不同色,那么通过小程序,把俱乐部搬到手机上,通过小程序了解俱乐部动态和运动常识,可以…

C++自定义信号和QML的槽函数建立连接

0x00 在C代码在定义一个信号函数&#xff1a;“void sendData2UI(QString msg);”&#xff0c;该函数主要是将接收到的UDP消息发送到QML界面中 #ifndef UDPCLI_H #define UDPCLI_H#include <QObject> #include <QUdpSocket> #include <QString>class UdpCli …

【Netty】NIO基础(三大组件)

文章目录 三大组件Channel & BufferSelector ByteBufferByteBuffer 正确使用姿势ByteBuffer 内部结构ByteBuffer 常见方法分配空间向 buffer 写入数据从 buffer 读取数据mark 和 reset 字符串与 ByteBuffer 互转Scattering ReadsGathering Writes粘包、半包分析 附&#xf…

《啊哈算法》第一章--排序

文章目录 前言一、排序算法二、桶排序三、冒泡排序三、快速排序总结 前言 今年蓝桥杯没有拿到省一&#xff0c;所以就决定沉下心来学习算法&#xff0c;为了使得算法的学习更加稳固&#xff0c;所以就拿起了&#xff0c;最基础的且最经典的一本算法书《啊哈算法》&#xff0c;…

Redis进阶底层原理- 持久化

Redis作为基于内存的缓存数据库&#xff0c;就会存在断电即失的问题&#xff0c;所以数据的持久化是非常重要的。Redis随着版本升级迭代&#xff0c;持久化技术也在不断的升级&#xff0c;&#xff08;从最开始的RDB&#xff0c;到的Redis1.1版本加入AOF&#xff0c;3.0版本支持…

全志F1C200S嵌入式驱动开发(sd卡驱动)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 说是sd卡,其实是micro sd卡,或者称之为tf卡更合适。一般的soc都支持从tf卡启动,所以用tf卡来学习soc、驱动和linux,对新人来说是比较合适的。前面我们已经用sd卡构建了一个类似…

uniapp:针对与富文本解析的几种方法

第一章、富文本的解析方法 1.1 uniapp自带组件&#xff1a;rich-text <rich-text :nodes"nodes"></rich-text> 1.2 v-html <view v-html"item.content"></view> 1.3 uview组件&#xff1a;u-parse <u-parse :content&quo…

学习babylon.js --- [3] 开启https

babylonjs提供WebVR功能&#xff0c;但是使用这个功能得用https&#xff0c;本文讲述如何使用自签名证书来开启https&#xff0c;基于第二篇文章中搭建的工程。 一 生成自签名证书 首先要安装openssl&#xff0c;这个去网上搜下就行了。安装完之后在终端下输入openssl回车可以…

DeepC 实用教程(三)环境数据

目 录 一、前言二、风谱/风剖三、洋流四、波浪4.1 规则波浪4.2 随机波浪谱 五、方向六、海床属性七、位置7.1 创建位置7.2 规则波时域条件7.3 随机波时域条件7.4 波浪散布图7.4.1 散布图分块7.4.2 时域条件 八、参考文献 一、前言 SESAM &#xff08;Super Element Structure A…

y0usef靶场详解

y0usef靶场详解 靶机感悟&#xff1a;对于这个靶机并没有太多的难点&#xff0c;也没有的别多的绊子&#xff0c;就是猜测下一步是什么&#xff0c;耐心的去思考怎么才能进行到下一步。 靶机下载地址&#xff1a;https://download.vulnhub.com/y0usef/y0usef.ova 这个靶机是…

每天一点Python——day55

#第五十五天Python内置数据结构&#xff1a;列表、字典、元组 本次学另外一种数据结构&#xff1a;集合 集合也是可变类型序列 重点&#xff1a;集合里面没有value&#xff0c;只有键&#xff0c;采用也是哈希函数#如图&#xff1a; #集合与字典的对比字典&#xff1a; 字典{ke…

Java 提供的线程安全集合

一、CopyOnWrite&#xff08;COW算法的容器&#xff09; 最终一致性、写分离思想。 用Volatile修饰&#xff0c;每次直接从内存地址中读取&#xff0c;读取时不加锁。 写时用显式锁整个容器&#xff08;防止其它写线程&#xff09;&#xff0c;然后拷贝一份副本&#xff0c;对…

【NLP】transformers的位置编码

一、背景 本文是“实现的变压器”系列的第二篇。它从头开始引入位置编码。然后,它

【Linux | Shell】结构化命令 - if 语句

目录 一、概述二、if-then 语句三、if-then-else 语句四、if-then-elif 语句五、嵌套 if 语句 一、概述 前面文章介绍了一些Shell脚本的基础知识&#xff0c;也了解了怎样构建一个shell脚本文件&#xff0c;让shell脚本执行一些基础的指令&#xff0c;但都是从上到下依次执行的…

少年侠客【InsCode Stable Diffusion美图活动一期】

少年侠客【InsCode Stable Diffusion美图活动一期】 文章目录 Stable Diffusion 模型在线使用地址第一张图第二张图第三张图第四张图第五张图第六章图 一、InsCode Stable Diffusion 体验1.1 界面很友好1.2 小小体验一下1.3 体验感受 二、如何在InsCode给Stable Diffusion安装L…

车载软件架构 —— 闲聊几句AUTOSAR OS(九)

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 没有人关注你。也无需有人关注你。你必须承认自己的价值,你不能站在他人的角度来反对自己。人生在世,最怕的就是把别人的眼光当成自己生活的唯一标…

Keil中文注释乱码解决

1、打开Keil之后&#xff0c;点击Edit 2、点击Configuration 3、 选择Encording &#xff0c;在下拉列表中 选择Chinese GB2312 保存设置&#xff0c;重启keil。