Unicode 组合笔画字符的高度错误?

Unicode combined stroke character ends up on the wrong height?

我有一个像“€1,49”这样的字符串,我想用 unicode 删除它。我知道这应该可以通过 U+0336 实现,我正在将其应用于我的字符串(在 Python 中),如下所示:

'\u0336'.join('€1,49') + '\u0336'

问题在于,这最终会在与字符串其余部分不同的高度敲击逗号,从而消除干净删除线的错觉(参见屏幕截图)。

有人能告诉我我做错了什么吗?

我觉得你做不到。

您正在寻找格式,它在 unicode 范围之外。你应该使用控制字符(如果你的终端支持它),或者使用 html,或者其他方式。

您正在使用主要用于修改现有字符(和相同类型)的函数。

注意:Unicode 也没有定义输出,所以上面的输出取决于字体,它可能不适用于许多不同的环境。

通过用逗号和一些组合字符(space 类似)替换逗号,您可能会得到更好的结果,这样字体会将组合视为更高的字符,因此更对齐的罢工。但正如我所写,它并不是真正的可移植,它取决于你的字体,所以我无法测试并给你一个好的解决方案。 [而且正如我之前所说,将 U+0336 用于此类格式化范围是不好的品味]