Действие нормальное но работает не так как ты ожидаешь.
Проблема не в nodeJS а в движке V8 и его реализации работы со строками.
В V8 символы в строке выравниваются по границе uint16_t для оптимизации работы со строками и кирилица во внутреннем представлении кодируется двумя байтами что бы работали сравнения регулярные выражение и прочее.
И в момент когда данные буфера (char*) преобразуются во внутренне представление движка (uint16_t*) они просто выравниваются по границе uint16_t для латиницы это нормально а для символов которые должны кодироваться двумя байтами это фатально и возникает ошибка с однобайтовыми национальными кодировками (например cp1251).
>> Такое вот сработало!
Потому что буфер не приводился к строке.
|