【问题标题】:Display-width of multibyte character in C standard library – how accurate is the database?C 标准库中多字节字符的显示宽度——数据库的精度如何?
【发布时间】:2017-03-07 18:41:48
【问题描述】:

标准 C 库的 wcwidth 调用为亚洲字符返回 2。然后是 Unicode 符号,如箭头。对于那些它返回1。通常情况下,字符比单列宽,但库并没有错,因为终端在单列打印它们并允许视觉重叠,有时会给出不错的结果,例如 ndash "-"。

有没有明显受苦的角色?我想知道亚洲人和其他地区的人如何使用终端,他们开发了哪些解决方案。例如,显示跨越整行并包含当前目录名称的 shell 提示可能是一个严重的问题。可以wcwidth打补丁以获得更好的效果吗?例如,使用github/wcwidth.c 作为起点。

【问题讨论】:

    标签: c unicode terminal width multibyte-functions


    【解决方案1】:

    不明确的宽度字符存在差异。 xterm 既有 Markus Kuhn 的 original(您显示的链接似乎是他的,comment-header 已删除),也有 alternate version 调整以适应 CJK(东亚)。除了那个,它还在启动时检查usable system locale tables。有些足够好;其他人不是。没有人对真正好的进行过系统的(公正的)调查(您可能会看到一些关于这方面的意见,作为答案提供)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-23
      • 2012-04-15
      • 1970-01-01
      相关资源
      最近更新 更多