Лечим кодировку при экспорте CSV в Redmine

redmineПоставил недавно последний Redmine 2.x. Обнаружилось что при экспорте в формат CSV неверно отображаются русские символы. Поэтому в нем хочу добавить простенькое решение. Итак, открываем файл ru.yml. У меня он находится по пути:

Ищем строку с параметром general_csv_encoding и меняем значение с UTF-8 на WINDOWS-1251:

Перезапускаем Redmine.

UPD От пользователя Bozo: «Экспорт в csv происходит нормально, но в utf без bom. А глупые мс-продукты при виде utf без bom сходят с ума. Так что нужно всего лишь добавлять bom к созданному csv-файлу. Это можно реализовать микро-плагином за 10 минут.»

Плагин от Bozo:

12 комментариев к “Лечим кодировку при экспорте CSV в Redmine

      1. Русский символы неправильно отображаются из-за того, что то, чем вы их открываете не поддерживает unicode? глупый фикс.

        1. Ну значит Excel 2010 не поддерживает =) И ваше утверждение о глупости, как минимум не корректно, т.к. результат не всегда необходимо получать в UTF-8 😉

  1. Экспорт в csv происходит нормально, но в utf без bom. А глупые мс-продукты при виде utf без bom сходят с ума. Так что нужно всего лишь добавлять bom к созданному csv-файлу. Это можно реализовать микро-плагином за 10 минут.

    1. Я выложил решение, которое мне помогло. Если вы напишите плагин, — я буду рад прицепить его к заметке =)

      1. Ну, вот модуль из плагина для списка задач. Почти тоже самое написано для таймлога. Все крайне просто.
        require_dependency ‘queries_helper’

        module BOMFixQueriesHelperPatch
        def self.included(base)
        base.send(:include, InstanceMethods)

        base.class_eval do
        alias_method_chain :query_to_csv, :fixed_bom
        end
        end

        module InstanceMethods

        # adds bom symbols to utf-encoded csv file
        def query_to_csv_with_fixed_bom *args
        ret = query_to_csv_without_fixed_bom *args
        if l(:general_csv_encoding) == ‘UTF-8’
        ret = «\xef\xbb\xbf»+ret
        end
        ret
        end

        end
        end

        QueriesHelper.send(:include, BOMFixQueriesHelperPatch)

          1. Добрый день. Я новичок в Redmine. Подскажите, как установить этот патч? Много людей были бы благодарны Вам!

  2. Только что попробовал решение от bozo, у меня не заработало. Есть ещё решение:
    https://github.com/sprosin/redmine_csv_with_bom
    Устанавливать как обычный плагин redmine. Но это у меня тоже не заработало, что странно, поскольку были отзывы, что это решение действует.

  3. Спасибо за полезную инструкцию. Ею интересуются люди так или иначе связанные с Redmine, а значит всем им может пригодиться наша разработка. Мы создали простой таймер RMClient для учета времени в Redmine. Программа удобна и функциональна. Мы используем этот таймер в собственной компании, что позволило существенно упростить работу с Redmine и оптимизировать работу команды. Предлагаю всем желающим ее протестировать и если понравиться будем рады новым пользователям!

Оставить ответ

Ваш e-mail не будет опубликован. Обязательные поля помечены *