I am using Ubuntu 18.04.2 LTS
and with GNOME Terminal 3.28.2
I type the following command:
echo -e "\u0928\u094d\u0928"
The output should consist in two Devengari glyphs (ligature): न्न
. Instead, what I got is a composition of three glyphs, combination of \u0928\u094d
(न्
) and the last one \u0928
(न
).
This is my locale
output:
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=
Why I can not properly represent that ligature? Should I have to point to a specific font family ?
I have also tried the same with a simple C++
program:
#include <iostream>
#include <string>
int main()
{
std::string hindi = "न्न";
std::cout << hindi << std::endl;
return 0;
}
Also in this case, the output is the same (wrong) three glyph concatenation on the shell. I am wondering if the font render engine of the terminal is causing this problem rather than C++
or echo
.