如何用Unicode很好地显示小数15/16?

ktm*_*124 -1 unicode unicode-escapes

我今天了解到,尽管普通分数具有专用的Unicode值,但要形成不太常见的分数(例如³/₁₆),您必须使用上标/下标字符,后跟斜杠。这在这里这里得到证实。

这适用于¹/₁₆和¹³/₁₆,但与¹⁵/₁₆混为一谈。您是否看到5指数比1指数高?我想这是因为为了将数字5清楚地显示为上标,它需要比1和3高的高度。

好吧,这带来了一个问题。如何将15/16小数很好地显示为Unicode字符?不幸的是,我不能使用sup和sub标签。我没有在HTML页面中显示它。相反,我们正在将字符串传递给Java应用程序,该应用程序随后将呈现这些值。我知道它可以很好地呈现Unicode值,但无法识别HTML标签。是否有Unicode解决方案?

Cha*_*uff 8

在 Unicode 中组合任意粗俗分数的“正确”方式是根本不使用下标和上标数字,而是利用字符 U+2044 FRACTION SLASH 的特殊属性。您只需键入常规的 ASCII 数字并用斜线将它们分开,如下所示:15?16。然后渲染引擎会自动选择正确的数字形式,产生干净、统一的外观。

我将“正确”这个词放在引号中,因为不能保证所有系统都支持此方法,并且某些支持它的系统不正确或不完整。如果您绝对需要确保 100% 的收件人(无论系统如何)肯定会看到看起来或多或少正确的内容,因此我仍然(不情愿地)建议使用预先格式化的下标和上标作为替代。正如另一个答案所解释的那样,您遇到的问题是字体问题,如果您无法控制字体设置,则无法解决。

  • @M.Justin 任何零宽度、不可见的字符都可以解决问题。我个人更喜欢使用 U+2064 INVISIBLE PLUS,因为它被编码来准确表示这种类型的语义概念,但像 U+200C ZERO WIDTH NON-JOINER 或 U+2060 WORD JOINER 之类的东西也可以工作。 (10认同)
  • 好吧,假设您编写“1 \u2044 16”(不带空格)作为尝试将 1/16 显示为分数字形。渲染引擎如何知道分数在 16 之后结束,而不是在 1 之后结束。也就是说,它如何知道它是 1/16 而不是 1/1 后跟 6? (2认同)
  • 一旦文本渲染器遇到一个不能成为分数的一部分的字符,即不是 ASCII 数字的东西,分数就会结束。 (2认同)

js2*_*010 7

我找到了这个网站,Unicode Fraction Creator: https://lights0123.com/fractions/

\n

这是一个示例:\xc2\xb3\xe2\x81\x84\xe2\x82\x82

\n

这是:

\n

U+00B3 上标三

\n

U+2044 分数斜杠

\n

U+2082 下标二

\n


小智 5

这确实是一个字体的问题,但问题的事实产生,在Unicode的¹²以及³属于拉丁语1补充块,而其他标位属于标和下标块,有的字体替换发生。

请参阅为什么上标数字的Unicode字符显示的高度不同?有关更多详细信息;它被标记为iOS,但我在macOS上也遇到了同样的问题。

  • 那么,“ 1”,“ 2”和“ 3”可能会以与其他字体完全不同的字体显示吗?这肯定会导致一些一致性问题。 (2认同)