>>852
私の環境(WinXP SP2 日本語版)では再現できます。chcp 65001した状態で、
下記のコードを実行すると、4/8 writtenと表示されますが、実際には8バイト全て出力されています。

# include <windows.h>
# include <stdio.h>
int main(void)
{
  const char *msg = "\xe8\xab\xb8\xe8\xa1\x8c\r\n";
  DWORD written;
  WriteFile(GetStdHandle(STD_OUTPUT_HANDLE), msg, strlen(msg), &written, NULL);
  fprintf(stderr, "%d/%d written\n", (int)written, (int)strlen(msg));
}

すれ違い御容赦。