Version: unspecified (using KDE 4.6.2) OS: Linux Konsole removes some important Unicode characters such as ZWNJ (Zero-Width Non-Joiner) from input. Reproducible: Always Steps to Reproduce: Try pasting the following string which includes a ZWNJ into a Konsole terminal. You may want to enable bidirectional rendering option of Konsole to render it correctly. نیمفاصله Actual Results: نیمفاصله Expected Results: نیمفاصله
Another important removed character is U+0654.
"The zero-width non-joiner (ZWNJ) is a non-printing character used in the computerization of writing systems that make use of ligatures. When placed between two characters that would otherwise be connected into a ligature, a ZWNJ causes them to be printed in their final and initial forms, respectively. This is also an effect of a space character, but a ZWNJ is used when it is desirable to keep the words closer together." So a ZWNJ is meant to increase the space between two letters. That does not go well with the columns x rows model used by konsole, if I understand it correctly. Below is the code where ZWNJ is currently simply ignored (the category for ZWNJ is QChar::Other_Format) void Screen::displayCharacter(unsigned short c) { int w = konsole_wcwidth(c); if (w < 0) return; else if (w == 0) { if (QChar(c).category() != QChar::Mark_NonSpacing) return; .... } No idea about what U+0654 is meant for. Ebrahim Mohammadi, could you provide a test case? And it is better to re-check those problems using KDE SC newer than 4.8 (or just konsole newer than 2.8.0)
Please open a new ticket if this is still an issue w/ a recent KDE5 version