我今天了解到,尽管普通分数具有专用的Unicode值,但要形成不太常见的分数(例如³/₁₆),您必须使用上标/下标字符,后跟斜杠。确认为here和here。
这对于¹¹/¹和¹³/₁₆起作用,但是与¹⁵/₁₆混淆。您是否看到5指数比1指数高?我想这是因为为了将数字5清楚地显示为上标,它需要比1和3高的高度。
好吧,这带来了一个问题。如何将15/16小数很好地显示为Unicode字符?不幸的是,我不能使用sup和sub标签。我没有在HTML页面中显示它。相反,我们正在将字符串传递给Java应用程序,该应用程序随后将呈现这些值。我知道它可以很好地呈现Unicode值,但无法识别HTML标签。有Unicode解决方案吗?
答案 0 :(得分:5)
这确实是字体问题,但是问题来自于以下事实:在Unicode中,¹
,²
和³
属于 Latin-1补编块,而其他上标数字属于上标和下标块,并且会发生某些字体替换。
有关更多详细信息,请参见Why the display of Unicode characters for superscripted digits are not at the same height?;它被标记为iOS,但在macOS上我也有同样的问题。
答案 1 :(得分:2)
在Unicode中组成任意低俗分数的“正确”方法是根本不使用下标和上标数字,而是利用字符U + 2044 FRANCE SLASH的特殊属性。您只需键入常规ASCII数字并用斜杠将它们分开,如下所示:15⁄16。然后,渲染引擎将自动选择正确的数字形式,以产生清晰,统一的外观。
我在引号中加上“适当”一词,是因为不能保证所有系统都支持该方法,并且某些支持该方法的方法不正确或不完整。如果您绝对需要确保100%的接收者(无论使用哪种系统)肯定会看到看起来或多或少正确的内容,因此,我仍然(勉强地)建议使用预格式化的下标和上标作为替代。正如另一个答案所解释的那样,您遇到的问题是字体问题,如果您无法控制字体设置,则无法解决。
答案 2 :(得分:0)
有关很好地显示分数的一般答案,请复制,粘贴和更改。
ASCII字符 | 名称 | 十六进制值 |
---|---|---|
⁄ | 分数斜线 | 8260 |
0 | 数字0 | 48 |
1 | 数字1 | 49 |
2 | 数字2 | 50 |
3 | 数字3 | 51 |
4 | 数字4 | 52 |
5 | 数字5 | 53 |
6 | 数字6 | 54 |
7 | 数字7 | 55 |
8 | 数字8 | 56 |
9 | 数字9 | 57 |
示例:1/0 =
1⁄0