Мои знаки доллара теперь маленькие коробочки

На этой неделе мы обновились до JasperReports Server 4.7 (Professional) и iReport 4.7. У меня есть несколько отчетов, которые я создал в iReport 4.5.1 и успешно использовал в JasperReports Server 4.5.1.

После обновления все мои знаки доллара теперь представляют собой маленькие квадратики. Шаблон для моих полей валюты — ¤ #,##0.00. Сервер JasperReports не заменяет поле знаком доллара при создании отчета. В образце выкройки все выглядит нормально. Мои процентные символы все еще работают. Я попытался удалить и снова применить шаблон валюты к полям, но это не решило проблему.

Любые мысли о том, как я могу это исправить?


person Lisa    schedule 11.07.2012    source источник
comment
Вы пробовали изменить кодировку символов? (Первая строка отчета: ‹?xml version=1.0 encoding=UTF-8?›)   -  person R5498    schedule 13.07.2012
comment
Спасибо! Я дважды проверил, и все мои файлы XML и Tomcat настроены на кодировку UTF-8. У меня такое чувство, что мне нужно что-то отредактировать в файле локали, чтобы указать, что я должен получать знаки доллара. Если я изменю свой язык с английского на испанский или французский, я все равно получу те же поля-заполнители вместо символа валюты. Это происходит только на стороне сервера JasperReports, а не в iReport.   -  person Lisa    schedule 16.07.2012


Ответы (1)


Это Java, работающая так, как задумано... но не так, как вы хотите, чтобы она работала. В вашей локали не указана валюта, поэтому вы получаете символ «¤».

Вы можете обойти это, изменив локаль с «en» на «en_US». Я только что сделал это на прошлой неделе. В качестве примечания, я нашел одну настройку, которую мне нужно было сделать. После изменения локали на en_US мне нужно было скопировать один файл следующим образом:

cp .../jasperserver-pro/scripts/jquery/js/jquery.ui.datepicker-en.js .../jasperserver-pro/scripts/jquery/js/jquery.ui.datepicker-en-US.js

В качестве альтернативы я обычно считаю, что лучше обойти это, установив маску формата для использования жестко закодированного знака доллара. Если вы показываете «50,00 долларов США» пользователю в США, было бы бессмысленно отображать «50,00 евро» для пользователя из Европы или «50,00 иен» для пользователя из Японии для того же значения. Во многих случаях жестко закодированный символ валюты является более подходящим.

person mdahlman    schedule 16.07.2012
comment
Спасибо, Мэтью! Все мои валютные ценности указаны в долларах США, так что это дает мне пищу для размышлений. Возможно, эти знаки доллара должны быть жестко запрограммированы. Я также изменю нашу локаль — спасибо за инструкции по копированию этого файла. - person Lisa; 17.07.2012