ncursesを用いてUTF8を用いて文字列を表示する下記のcプログラムを作成しコンパイル実行したところ、下記の結果の様に一行目の文字は連続して表示されていますが、二行目の文字の間に半角空白が出力されてしまい、連続して表示されません。
なぜ空白文字が出力されてしまうのでしょうか?
実行環境はUbuntu18.04LTSです。
コード

#include<ncurses.h>
#include<locale.h>

int main(void){
    setlocale(LC_ALL, "");
    initscr();

    //ずれの発生しない場合
    mvprintw(0, 0, "あ");
    mvprintw(0, 2, "あ");
    getch();
    //ずれの発生する場合
    mvprintw(1, 0, "■");
    mvprintw(1, 2, "あ");
    getch();


    endwin();
}

結果

ああ
あ ■