Gitlab и кирилица в комментах к коду не в UTF-8 кодировке

Недавно развернул для производственных нужд на работе сервер Gitlab — открытый аналог github.com. Всё бы хорошо, но мы — троглодиты такие — до сих пор пишем код прошивок для наших девайсов под gcc, который не понимает юникод. Поэтому файлы с русскими комментариями сохраняются в кодировке Windows-1251. А Gitlab как-то странно их показывает. Примерно так:

Использован отрывок кода моего коллеги UniBomb‘a

Ruby-гем charlock_holmes, отвечающий за распознавание кодировки исходников и перевода их в UTF-8, почему-то не может сам понять, что подсовывают ему именно Windows-1251. Пришлось ему помочь.

Вот оригинальный файл модуля encode.rb:

Проблема возникает в строке номер 21, помеченной комментарием: «Если сообщение не в UTF-8, конвертируем». Кодировка изначально была неверно определена в строке 14, поэтому дальше при попытке конвертации в UTF-8 происходит косяк.

Заменим в строках под номерами 22 и 23 выражение detect[:encoding] на строку "windows-1251" (вместе с кавычками), наглядно намекнув gitlab’у, что он не прав. Теперь этот блок должен выглядеть вот так:

Сохраняем. Перезапускаем демона:

Всё, теперь наши комментарии на русском языке в файлах с кодировкой CP1251 будут отображаться в читабельном виде. Конец.

P.S. И да, это костыль, но он вполне допустим в нашем случае, когда сервером пользуется два человека, и код поставляется лишь в двух кодировках: UTF-8 и Windows-1251. Но это баг Чарлока Холмса, ждём апдейтов :)

+
Поделиться
Отправить
Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (нет оценок)
Загрузка...