【问题标题】:Unicode Keystroke Characters?Unicode 击键字符?
【发布时间】:2013-07-29 17:03:58
【问题描述】:

unicode 中的字符是否类似于 HTML 中 <kbd> 标记所形成的东西?我想用它作为游戏的一部分来表示用户可以按键来执行某个动作,例如:

R 重置,或按 S 打开设置菜单。

有字符吗?我不需要像 ⇧ ShiftTab ⇆ 这样的花哨的东西,单字母键就足够了。我正在寻找类似于Enclosed Alphanumerics 子范围的东西。

如果有这样的字符,我在哪里可以找到描述它们的页面?我尝试的所有谷歌搜索都只出现了“unicode字符键盘快捷键”的东西。

如果没有字符,我如何在处理 2.0.1 中显示类似的内容作为(或至少符合)文本字符串的一部分?

【问题讨论】:

  • 这可能超出了 Unicode 标准的范围。标准注释:“Unicode标准没有定义字形图像。也就是说,标准定义了如何解释字符,而不是如何渲染字形。最终,计算机的软件或硬件渲染引擎负责外观屏幕上的字符。Unicode 标准没有指定屏幕上字符的精确形状、大小或方向。"您可以找到代码点图表here
  • @McDowell 那么为什么他们有Enclosed Alphanumerics
  • @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>&#x20e3;</span>

使用提到的字体时,它并不完美。帽子里的人物不是很集中。此外,如果我尝试使用该技术,例如对于字符 Å(出现在普通北欧键盘上),A 上方的圆环从大写字母中伸出。您可以通过将大写字母的字体大小设置为组合标记字体大小的 85% 来调整这一点,但字母的水平位置会更加偏离。

总而言之,可能在字符级别做这样的事情,但是如果你可以使用其他方法,比如为字符使用边框或背景图像,你可能会做得更好渲染。

【讨论】:

    猜你喜欢
    • 2016-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多