【问题标题】:Unicode Keystroke Characters?Unicode 击键字符?
【发布时间】:2013-07-29 17:03:58
【问题描述】:
unicode 中的字符是否类似于 HTML 中 <kbd> 标记所形成的东西?我想用它作为游戏的一部分来表示用户可以按键来执行某个动作,例如:
按 R 重置,或按 S 打开设置菜单。
有字符吗?我不需要像 ⇧ Shift 或 Tab ⇆ 这样的花哨的东西,单字母键就足够了。我正在寻找类似于Enclosed Alphanumerics 子范围的东西。
如果有这样的字符,我在哪里可以找到描述它们的页面?我尝试的所有谷歌搜索都只出现了“unicode字符键盘快捷键”的东西。
如果没有字符,我如何在处理 2.0.1 中显示类似的内容作为(或至少符合)文本字符串的一部分?
【问题讨论】:
-
这可能超出了 Unicode 标准的范围。标准注释:“Unicode标准没有定义字形图像。也就是说,标准定义了如何解释字符,而不是如何渲染字形。最终,计算机的软件或硬件渲染引擎负责外观屏幕上的字符。Unicode 标准没有指定屏幕上字符的精确形状、大小或方向。"您可以找到代码点图表here。
-
-
@AJMansfield;大多数them 都是遗留的(1.1 and 3.2):“Unicode 标准中有大量的兼容性符号,它们要么由包含在某些图形元素中的字母或数字组成,要么由字母或数字组成方形排列。其中许多符号源自传统的东亚字符集,其中这些符号通常被编码为元素。”(v6.2,第 531 页)。
标签:
unicode
keyboard
processing
keystroke
【解决方案1】:
(所指的渲染不是kbd的默认渲染,它只是以系统默认的等宽字体显示内容。但是例如在StackOverflow页面中,使用样式表格式化kbd,使其看起来像一个键帽。)
有点令人惊讶的是,有一种 Unicode 方法可以在键帽中创建看起来像字符的东西:输入字符,然后立即 COMBINING ENCLOSING KEYCAP U+20E3。
Font support 这个字符非常有限,但包含一些免费字体。不幸的是,它们都不是无衬线字体,要在里面显示的字符通常应该以这种字体出现——毕竟,真正的键帽包含非常简单的字符形状,没有衬线。并且一般来说,一个字符和一个包围标记应该取自同一个字体;否则它们可能不兼容。但是,似乎从GNU Freefont 中的无衬线字体(FreeSans)中提取普通字符和来自同一来源的衬线字体(FreeSerif)的组合标记创建了一个合理的呈现方式:
恐怕它在文本中不起作用,但我会尝试:A⃣。
如前所述,这是否有效取决于使用合适的字体,还取决于渲染软件。程序在显示组合标记方面相当糟糕,但已经有了一些改进。我在 Word 2007 中对此进行了测试,它工作正常,并且在 Web 浏览器(Chrome、Firefox、IE)上也使用如下代码进行了测试,结果良好:
<style>
.cap { font-family: FreeSerif; }
.cap span { font-family: FreeSans; }
</style>
<span class="cap"><span>A</span>⃣</span>
使用提到的字体时,它并不完美。帽子里的人物不是很集中。此外,如果我尝试使用该技术,例如对于字符 Å(出现在普通北欧键盘上),A 上方的圆环从大写字母中伸出。您可以通过将大写字母的字体大小设置为组合标记字体大小的 85% 来调整这一点,但字母的水平位置会更加偏离。
总而言之,可能在字符级别做这样的事情,但是如果你可以使用其他方法,比如为字符使用边框或背景图像,你可能会做得更好渲染。