【问题标题】:Echo shows wrong character (glyph)Echo 显示错误的字符(字形)
【发布时间】:2020-01-15 23:37:24
【问题描述】:

我使用Ubuntu 18.04.2 LTSGNOME Terminal 3.28.2 我输入以下命令:

echo -e "\u0928\u094d\u0928"

输出应包含 两个 Devengari 字形(连字):न्न。相反,我得到的是三个字形的组合,\u0928\u094d (न्) 和最后一个 \u0928 () 的组合。

这是我的locale 输出:

LANG=en_US.UTF-8
LANGUAGE=en_US
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC=pl_PL.UTF-8
LC_TIME=pl_PL.UTF-8
LC_COLLATE="en_US.UTF-8"
LC_MONETARY=pl_PL.UTF-8
LC_MESSAGES="en_US.UTF-8"
LC_PAPER=pl_PL.UTF-8
LC_NAME=pl_PL.UTF-8
LC_ADDRESS=pl_PL.UTF-8
LC_TELEPHONE=pl_PL.UTF-8
LC_MEASUREMENT=pl_PL.UTF-8
LC_IDENTIFICATION=pl_PL.UTF-8
LC_ALL=  

为什么我不能正确地表示那个连字?我是否必须指向特定的字体系列?

我也尝试了一个简单的C++ 程序:

#include <iostream>
#include <string>

int main()
{
    std::string hindi = "न्न";

    std::cout << hindi << std::endl;    
    return 0;
    }

同样在这种情况下,shell 上的输出是相同的(错误的)三个字形连接。我想知道终端的字体渲染引擎是否导致了这个问题,而不是C++echo

【问题讨论】:

    标签: c++ utf-8 fonts echo glyph


    【解决方案1】:

    在这些情况下,输出的 unicode 字符看起来是正确的。可能是您的终端不支持此字形所需的连字表(即使字体确实支持它们)。您是否可以尝试另一个具有更好连字支持的终端? It looks like someone had some successKitty

    【讨论】:

      猜你喜欢
      • 2016-06-15
      • 2012-10-26
      • 1970-01-01
      • 2018-06-08
      • 1970-01-01
      • 1970-01-01
      • 2014-11-17
      • 2013-03-11
      • 1970-01-01
      相关资源
      最近更新 更多