UEFI Spec 学习笔记---33 - Human Interface Infrastructure Overview---33.2.6 Strings

33.2.6 Strings

UEFI 环境中的 string 是使用 UCS-2 格式定义,每个字符由 16bit 数据表示。对于用户界面,strings 也是一种可以安装到 HIIdatabase 的一种数据。

为了本土化,每个 string 通过一个唯一标识符来识别,而每一个标识符可以和多个 package 关联比如英语、法语、中文等。需要显示的时候根据系统的语言配置来选择显示。

实际的每种语言的 package 是独立存储的,所以在添加删除的时候,只需要 including /excluding 对应的 package 就可以了。

每个字符串都可能有与之关联的字体信息,包括字体族名称、字体大小和字体样式。并非所有的平台或显示器都支持系统默认字体(fonts)以外的字体和样式,因此与字符串相关的字体信息应被视为一组提示。

33.2.6.1 Configuration Language Paradigm

该规范使用RFC 4646语言命名方案来标识给定字符串所关联的语言。由于RFC 4646允许相同的主语言标签包含大量不同的子标签(例如区域),因此在RFC 4647中定义了最佳匹配语言算法。需要RFC 4646语言代码来检索Unicode字符串的接口调用者必须使用RFC 4647算法来查找具有最接近匹配RFC 4646语言代码的Unicode字符串。

例如:STR_MODULE_ABSTRACT 就是一个 string identifier 对应语言包就是 en-US

#string STR_MODULE_ABSTRACT             #language en-US "Provides the default logo bitmap picture shown on setup screen."
33.2.6.2 Unicode Usage

本节描述Unicode规范的不同方面如何与该规范中的字符串相关。

33.2.6.2.1 Private Use Area

Unicode定义了一个包含6500个字符的私有使用区域,可以为本地使用而定义。建议的用法包括埃及语、象形文字。

UEFI禁止在UEFI环境中使用此区域。这是因为从各种驱动程序(一个有效的实现)中积累的集中字体数据库最终会在私有使用区域中产生冲突,并且通常会导致错误XML浏览器无法显示这些字符。

33.2.6.2.2 Surrogate Area

Unicode规范有两个16位字符表示:UCS-2和UTF-16。UEFI规范使用UCS-2。主要区别在于UTF-16定义了代理区域,这些区域允许扩展16位Unicode的字符表示。这些字符表示非常类似于双字节字符集(DBCS)——将2048个Unicode值分成两组(D800-DBFF和DC00-DFFF)。

33.2.6.2.3 Non-Spacing Characters

Unicode使用非空格字符的概念。这些符号用于向其他字符添加重音等,方法是在逻辑上将该符号与前一个符号进行“OR”。在Unicode编码中似乎没有任何可预测的范围来确定非空格字符,然而这些字符出现在许多语言中。

33.2.6.2.4 Common Control Codes

该规范允许使用特殊控制字符对字符串中的字体显示信息进行编码。这些控制代码意味着显示提示,不同的平台可能会忽略它们,这取决于显示功能。在单字节编码中,它们的形式是0x7F 0xyy或0x7F 0x0y 0xzz。单字节编码仅在与Unicode的标准压缩方案(见字符串编码)结合使用时使用。在双字节编码中,它们的形式是0xF6yy, 0xF7zz或0xF8zz。当转换为UCS-2时,所有控制码都应该使用0xFxyy形式。

33.2.6.2.5 Line Breaks

一般来说,下列任何一个空格字符都是换行:

本节描述使用控制字符来确定字符串中中断的机会。这些指导方针基于Unicode Technical Report #14,但是大大简化了。

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

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

相关文章

Stable Diffusion 学习笔记02

模型下载网站: 1,LiblibAI-哩布哩布AI - 中国领先的AI创作平台 2,Civitai: The Home of Open-Source Generative AI 模型的安装: 将下载的sd模型放置在sd1.5的文件内即可,重启客户端可用。 外挂VAE模型&#xff1a…

并发编程(5)

抛异常时会释放锁。 当线程在 synchronized 块内部抛出异常时,会自动释放对象锁。 public class ExceptionUnlockDemo {private static final Object lock new Object();public static void main(String[] args) {Thread t1 new Thread(() -> {synchronized …

贵州某建筑物挡墙自动化监测

1. 项目简介 某建筑物位于贵州省某县城区内,靠近县城主干道,周边配套学校、医院、商贸城。建筑物临近凤凰湖、芙蓉江等水系,主打“湖景生态宜居”。改建筑物总占地面积:约5.3万平方米;总建筑面积:约15万平…

6个月Python学习计划:从入门到AI实战(前端开发者进阶指南)

作者:一名前端开发者的进阶日志 计划时长:6个月 每日学习时间:2小时 覆盖方向:Python基础、爬虫开发、数据分析、后端开发、人工智能、深度学习 📌 目录 学习目标总览每日时间分配建议第1月:Python基础与编…

【FAQ】HarmonyOS SDK 闭源开放能力 —Vision Kit (3)

1.问题描述: 通过CardRecognition识别身份证拍照拿到的照片地址,使用该方法获取不到图片文件,请问如何解决? 解决方案: //卡证识别实现页,文件名为CardDemoPage,需被引入至入口页 import { …

AI全域智能监控系统重构商业清洁管理范式——从被动响应到主动预防的监控效能革命

一、四维立体监控网络技术架构 1. 人员行为监控 - 融合人脸识别、骨骼追踪与RFID工牌技术,身份识别准确率99.97% - 支持15米超距夜间红外监控(精度0.01lux) 2. 作业过程监控 - UWB厘米级定位技术(误差<0.3米&…

安全强化的Linux

SElinux简介 SELinux是security-Enhanced Linux的缩写,意思是安全强化的linux SELinux主要由美国国家安全局(NSA)开发,当初开发的目的是为了避免资源的误用。传统的访问控制在我们开启权限后,系统进程可以直接访问 当我们对权限设置不严谨时,这种访问方式就是系统的安全漏洞 在…

机器学习第十六讲:K-means → 自动把超市顾客分成不同消费群体

机器学习第十六讲:K-means → 自动把超市顾客分成不同消费群体 资料取自《零基础学机器学习》。 查看总目录:学习大纲 关于DeepSeek本地部署指南可以看下我之前写的文章:DeepSeek R1本地与线上满血版部署:超详细手把手指南 K-me…

spring中yml配置上下文与tomcat等外部容器不一致问题

结论:外部优先级大于内部 在 application.yml 中配置了: server:port: 8080servlet:context-path: /demo这表示你的 Spring Boot 应用的上下文路径(context-path)是 /demo,即访问你的服务时,URL 必须以 /d…

论文研读——《AnomalyGPT:使用大型视觉语言模型检测工业异常》

这篇论文提出了 AnomalyGPT,一个基于大型视觉语言模型的工业异常检测框架,首次将通用多模态对话能力引入工业视觉场景,通过引入图像解码器增强像素级感知,设计 Prompt 学习器实现任务自适应控制,并利用合成异常样本解决…

供应链安全检测系列技术规范介绍之一|软件成分分析

软件成分分析的概念及意义 软件成分分析Software Compostition Analysis(SCA)是一种用于管理开源组件应用安全的方法。软件成分分析系统可以快速跟踪和分析应用软件的开源组件,发现相关组件、支持库以及它们之间直接和间接依赖关系&#xff0…

conda更换清华源

1、概览 anaconda更换速度更快、更稳定的下载源,在linux环境测试通过。 2、conda源查看 在修改之前可以查看下现有conda源是什么,查看conda配置信息,如下: cat ~/.condarc 可以看到你的conda源,以我的conda源举例&am…

Docker配置容器开机自启或服务重启后自启

要将一个 Docker 容器设置为开机自启,你可以使用 docker update 命令或配置 Docker 服务来实现。以下是两种常见的方法: 方法 1:使用 docker update 设置容器自动重启 使用 docker update 设置容器为开机自启 你可以使用以下命令&#xff0c…

Flink 的水印机制

Apache Flink 的 水印机制(Watermark Mechanism) 主要用于解决 事件时间流中的乱序问题(Out-of-Order Events),确保窗口(Window)能够在合适的时间触发计算,从而提供准确、一致的处理…

【每天一个知识点】embedding与representation

“Embedding(嵌入)”与“Representation(表示)”在机器学习、自然语言处理(NLP)、图神经网络等领域常被使用,它们密切相关,但语义上有一定区别。 一、定义 1. Representation&#…

SpringBoot(二)--- SpringBoot基础(http协议、分层解耦)

目录 前言 一、SpringBoot入门 1.入门程序 2.解析 二、HTTP协议 1.HTTP概述 2.HTTP请求协议 2.1 GET方式的请求协议 2.2 POST方式的请求协议 2.3 两者的区别 2.4 获取请求数据 3.HTTP响应协议 三、分层解耦 1.三层架构 2.IOC&DI 2.1 入门 2.2 IOC详解 2.…

Please install it with pip install onnxruntime

无论怎么安装都是 Please install it with pip install onnxruntime 我python 版本是3.11 ,我换成3.10 解决了

【数据结构入门训练DAY-35】棋盘问题

本次训练聚焦于使用深度优先搜索(DFS)算法解决棋盘上的棋子摆放问题。题目要求在一个可能不规则的nn棋盘上摆放k个棋子,且任意两个棋子不能位于同一行或同一列。输入包括棋盘大小n和棋子数k,以及棋盘的形状(用#表示可放…

【日常笔记】wps如何将值转换成东西南北等风向汉字

在WPS表格中,若要将数值(如角度值)转换成“东、南、西、北”等风向汉字,可通过以下步骤结合自定义函数或条件判断实现: 一、wps如何将值转换 方法一:使用LOOKUP函数(简化公式)&…

Web性能优化的未来:边缘计算、AI与新型渲染架构

一、边缘计算与性能优化深度整合 1.1 边缘节点计算卸载策略 • 智能任务分割:将非关键路径计算卸载到边缘节点 // 客户端代码 const edgeTask = new EdgeTask(image-processing); edgeTask.postMessage(imageData, {transfer