如何在Java中使用Unicode敲打任何字母

如何在Java中使用Unicode敲打任何字母,java,unicode,Java,Unicode,在我的Java应用程序中,我希望输出带下划线的字母(如html标记do)。是否有任何方法可以使用Unicode(合并)否。Unicode不定义合并删除标记。Unicode认为这是标记的工作——就像HTML一样。不,这是不可能的。虽然有a的概念,但它不能作为单独的Unicode字符使用,可能是因为使用笔划符号的各种字母不能将其放置在相同的高度甚至角度。因此,结果无论如何都不会类似于删除线标记 要在Java中输出删除线文本,需要使用允许使用显式标记的输出格式。如果你有一个Swing应用程序,那么你和

在我的Java应用程序中,我希望输出带下划线的字母(如html标记do)。是否有任何方法可以使用Unicode(合并)

否。Unicode不定义合并删除标记。Unicode认为这是标记的工作——就像HTML一样。

不,这是不可能的。虽然有a的概念,但它不能作为单独的Unicode字符使用,可能是因为使用笔划符号的各种字母不能将其放置在相同的高度甚至角度。因此,结果无论如何都不会类似于删除线标记


要在Java中输出删除线文本,需要使用允许使用显式标记的输出格式。如果你有一个Swing应用程序,那么你和很多Swing组件一样幸运。否则,这取决于您使用的表示技术。

如前所述,Unicode不能做到这一点,但许多Swing组件都理解基本的HTML标记

JLabel label = new JLabel("<html><s>My stroke</s></html>")
JLabel标签=新JLabel(“我的笔划”)
您可以使用组合长笔划叠加来完成此任务

为了便于比较,这里是U+0336与html的
标记相比的外观:

7.0奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈2,l,a,y 超文本罢工标签


但有一点需要注意:如果你仔细看上面“合并”中的“m”,你可能会看到由于合并重叠标记的工作方式,在走向上有一个小缺口。因此,如果您有选择的话,您仍然应该更喜欢使用html或其他技术,而不是U+0336。

您已经给出了一个很好的答案,说明了为什么WITH笔划代码点没有包含任何笔划组合字符的分解,类似于带笔划的øU+00F8
拉丁文小写字母O
或带笔划的đU+0111
拉丁文小写字母D
(不要与ð00F0
拉丁文小写字母ETH
混淆)。有趣的是,这些字母分别被认为与o和d“相同”,甚至在ETH中也是,如UCA DUCET所示。因此,一级强度UCA会将其作为基本字符,而不会分解为基本字符。Unicode实际上将组合删除线字符定义为一个单独的代码点,位于U+0336。@tchrist:OP并不是在寻找带有笔划的字母(如đØ等),但对于使用U+0336作为其他答案可以愉快地模拟的删除线来说,这完全是错误的——正如我在回答中所讨论的,Unicode确实定义了一个组合删除线标记。