Слетает кириллица gRPC .NET 5.0?

Бэк gRPC , фронт Blazor , .NET 5.0

При запуске в винде и виндовом докере все нормально. Когда разворачиваю в докере на VPS (ubuntu) то на самой странице текст русский, а вот то что приходит из gRPC становится �����.

Понятное дело что беда с кодировкой, но я не понимаю, что именно не так уже кончились идеи.

locale в ubuntu

LANG=ru_RU.UTF-8
LANGUAGE=
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=

locale в докере

# locale
LANG=ru_RU.UTF-8
LANGUAGE=ru_RU:ru
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=ru_RU.UTF-8

Сначала думал что проблема при сериализации, но дефолтный HelloRequest ведет себя так же. У кого то было такое?

Ради интереса развернул minimal APIs .NET6 в докере - эффект тот же. Русский текст в ответе становится ���� . На Win11 все нормально текст русский.

Еще кстати если gRPC юзать как обычное api и добавить в endpoints.MapGet такую строку context.Response.ContentType = "text/html;charset=utf-8"; то он возвращает из vps на русском без вопросиков. Но если юзать запросы через stream - не нашел где можно это указать

Беру данные так

using var serverStream = GreeterClient.SayHelloAsync(new HelloRequest());
var stream = await serverStream.ResponseAsync;
var result = stream.Message;

Ответы (1 шт):

Автор решения: Андрей Забылович

Это смешно, но файл действительно был закодирован в кодировке 1251. В моем проекте Blazor WebAssembly файлы *.razor UTF8, но файлы gRPC - 1251, теперь понятно, почему это происходит... Но непонятно, почему VS создает файлы в разных кодировках.

Используя notepad++, я сделал его utf8, и все сработало.

Чтобы исправить это для новых файлов, мне пришлось сделать этот параметр Tools > Options > Environment > Documents > Save documents as Unicode

→ Ссылка