Patch #28112 ยป redmine_with_ruby250.patch
| lib/redmine/export/csv.rb | ||
|---|---|---|
| 29 | 29 |
class Base < ::CSV |
| 30 | 30 |
include Redmine::I18n |
| 31 | 31 | |
| 32 |
BOM = "\xEF\xBB\xBF".force_encoding('UTF-8')
|
|
| 32 | 33 |
class << self |
| 33 | 34 | |
| 34 | 35 |
def generate(&block) |
| 35 | 36 |
col_sep = l(:general_csv_separator) |
| 36 | 37 |
encoding = l(:general_csv_encoding) |
| 37 | 38 | |
| 38 |
str = ''.force_encoding(encoding) |
|
| 39 |
if encoding == 'UTF-8' |
|
| 40 |
# BOM |
|
| 41 |
str = "\xEF\xBB\xBF".force_encoding(encoding) |
|
| 39 |
res = super(:col_sep => col_sep, :encoding => encoding, &block) |
|
| 40 |
if encoding == 'UTF-8' && !res.starts_with?(BOM) |
|
| 41 |
res = BOM + res |
|
| 42 | 42 |
end |
| 43 | ||
| 44 |
super(str, :col_sep => col_sep, :encoding => encoding, &block) |
|
| 43 |
return res |
|
| 45 | 44 |
end |
| 46 | 45 |
end |
| 47 | 46 | |