C UTF-8日语和韩语脚本在终端仿真器/tty中的字符之间插入空格

C UTF-8日语和韩语脚本在终端仿真器/tty中的字符之间插入空格,c,utf-8,terminal-emulator,C,Utf 8,Terminal Emulator,我在用C打印UTF-8编码的日语和韩语脚本时遇到问题。程序本身很简单(我省略了包括): 当我运行它(在st、kitty或tty上)时,每个字符都用规则空格分隔(代码32 dec),但是复制它并粘贴(即使在同一个终端窗口中)或将输出重定向到文件(通过/program>outfile)将消除这些字符,但echo“宇宙に飛びたい"(字符串粘贴时不带空格)或cat outfile将使它们再次出现,即使它们在输入中不存在。我测试过的所有其他脚本(希腊语、俄语、波兰语、拉丁语、阿拉伯语)都工作得很好。如何消

我在用C打印UTF-8编码的日语和韩语脚本时遇到问题。程序本身很简单(我省略了包括):

当我运行它(在st、kitty或tty上)时,每个字符都用规则空格分隔(代码32 dec),但是复制它并粘贴(即使在同一个终端窗口中)或将输出重定向到文件(通过
/program>outfile
)将消除这些字符,但
echo“宇宙に飛びたい"
(字符串粘贴时不带空格)或
cat outfile
将使它们再次出现,即使它们在输入中不存在。我测试过的所有其他脚本(希腊语、俄语、波兰语、拉丁语、阿拉伯语)都工作得很好。如何消除打印的空格?它们会弄乱我的UI。
另外,我复制并粘贴了字符之间的空格,以获取其代码。

结果表明这是一个终端功能。

你能详细说明一下吗?其他人将来可能会遇到同样的问题。谢谢你的回复。
int main()
{
    uint8_t valid_utf8_string1x[] = "宇宙に飛びたい"; //uint8_t is used on purpose
    printf(valid_utf8_string1x);
    return 0;
}