Closed kesllan closed 1 year ago
Na minha instalação a acentuação ocorre normalmente.
Como sugestão, poderia verificar se o sistema operacional tem a fonte DejaVu Sans Ela é a utilizado nos relatórios.
Na minha instalação a acentuação ocorre normalmente.
Como sugestão, poderia verificar se o sistema operacional tem a fonte DejaVu Sans Ela é a utilizado nos relatórios.
Legal @robertfsousa, sua instalação de banco de dados está com qual charset?
Poderia compartilhar o retorno do comando psql -U postgres -c "\l"
executado no seu ambiente?
@marcosoliveirasoares94 UTF-8
Legal @edersoares, mais notei que isso por sí só não é suficiente. Atualmente tenho as seguintes configurações e mesmo assim os meus relatórios são exibidos de forma quebrada.
Saída do comando: java -XshowSettings
VM settings:
Max. Heap Size (Estimated): 237.81M
Ergonomics Machine Class: client
Using VM: OpenJDK 64-Bit Server VM
Property settings:
awt.toolkit = sun.awt.X11.XToolkit
file.encoding = UTF-8
file.encoding.pkg = sun.io
file.separator = /
java.awt.graphicsenv = sun.awt.X11GraphicsEnvironment
java.awt.printerjob = sun.print.PSPrinterJob
java.class.path = .
java.class.version = 52.0
java.endorsed.dirs = /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/endorsed
java.ext.dirs = /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/ext
/usr/java/packages/lib/ext
java.home = /usr/lib/jvm/java-8-openjdk-amd64/jre
java.io.tmpdir = /tmp
java.library.path = /usr/java/packages/lib/amd64
/usr/lib/x86_64-linux-gnu/jni
/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu
/usr/lib/jni
/lib
/usr/lib
java.runtime.name = OpenJDK Runtime Environment
java.runtime.version = 1.8.0_352-8u352-ga-1~20.04-b08
java.specification.maintenance.version = 4
java.specification.name = Java Platform API Specification
java.specification.vendor = Oracle Corporation
java.specification.version = 1.8
java.vendor = Private Build
java.vendor.url = http://java.oracle.com/
java.vendor.url.bug = http://bugreport.sun.com/bugreport/
java.version = 1.8.0_352
java.vm.info = mixed mode
java.vm.name = OpenJDK 64-Bit Server VM
java.vm.specification.name = Java Virtual Machine Specification
java.vm.specification.vendor = Oracle Corporation
java.vm.specification.version = 1.8
java.vm.vendor = Private Build
java.vm.version = 25.352-b08
line.separator = \n
os.arch = amd64
os.name = Linux
os.version = 5.4.0-132-generic
path.separator = :
sun.arch.data.model = 64
sun.boot.class.path = /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/resources.jar
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/rt.jar
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/sunrsasign.jar
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/jsse.jar
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/jce.jar
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/charsets.jar
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/jfr.jar
/usr/lib/jvm/java-8-openjdk-amd64/jre/classes
sun.boot.library.path = /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64
sun.cpu.endian = little
sun.cpu.isalist =
sun.io.unicode.encoding = UnicodeLittle
sun.java.launcher = SUN_STANDARD
sun.jnu.encoding = UTF-8
sun.management.compiler = HotSpot 64-Bit Tiered Compilers
sun.os.patch.level = unknown
user.country = BR
user.dir = /var/www/ieducar
user.home = /root
user.language = pt
user.name = root
user.timezone =
Locale settings:
default locale = português
default display locale = português (Brasil)
default format locale = português (Brasil)
available locales = , ar, ar_AE, ar_BH, ar_DZ, ar_EG, ar_IQ, ar_JO,
ar_KW, ar_LB, ar_LY, ar_MA, ar_OM, ar_QA, ar_SA, ar_SD,
ar_SY, ar_TN, ar_YE, be, be_BY, bg, bg_BG, ca,
ca_ES, cs, cs_CZ, da, da_DK, de, de_AT, de_CH,
de_DE, de_GR, de_LU, el, el_CY, el_GR, en, en_AU,
en_CA, en_GB, en_IE, en_IN, en_MT, en_NZ, en_PH, en_SG,
en_US, en_ZA, es, es_AR, es_BO, es_CL, es_CO, es_CR,
es_CU, es_DO, es_EC, es_ES, es_GT, es_HN, es_MX, es_NI,
es_PA, es_PE, es_PR, es_PY, es_SV, es_US, es_UY, es_VE,
et, et_EE, fi, fi_FI, fr, fr_BE, fr_CA, fr_CH,
fr_FR, fr_LU, ga, ga_IE, hi, hi_IN, hr, hr_HR,
hu, hu_HU, in, in_ID, is, is_IS, it, it_CH,
it_IT, iw, iw_IL, ja, ja_JP, ja_JP_JP_#u-ca-japanese, ko, ko_KR,
lt, lt_LT, lv, lv_LV, mk, mk_MK, ms, ms_MY,
mt, mt_MT, nl, nl_BE, nl_NL, no, no_NO, no_NO_NY,
pl, pl_PL, pt, pt_BR, pt_PT, ro, ro_RO, ru,
ru_RU, sk, sk_SK, sl, sl_SI, sq, sq_AL, sr,
sr_BA, sr_BA_#Latn, sr_CS, sr_ME, sr_ME_#Latn, sr_RS, sr_RS_#Latn, sr__#Latn,
sv, sv_SE, th, th_TH, th_TH_TH_#u-nu-thai, tr, tr_TR, uk,
uk_UA, vi, vi_VN, zh, zh_CN, zh_HK, zh_SG, zh_TW
Existe algo que posso não estar vendo ou alguma configuração faltando?
Segue:
VM settings:
Max. Heap Size (Estimated): 2.00G
Using VM: OpenJDK 64-Bit Server VM
Property settings:
awt.toolkit = sun.lwawt.macosx.LWCToolkit
file.encoding = UTF-8
file.separator = /
ftp.nonProxyHosts = local|*.local|169.254/16|*.169.254/16
gopherProxySet = false
http.nonProxyHosts = local|*.local|169.254/16|*.169.254/16
java.awt.graphicsenv = sun.awt.CGraphicsEnvironment
java.awt.printerjob = sun.lwawt.macosx.CPrinterJob
java.class.path =
java.class.version = 55.0
java.home = /usr/local/Cellar/openjdk@11/11.0.17/libexec/openjdk.jdk/Contents/Home
java.io.tmpdir = /var/folders/00/jq7zk52n4p5521ys1rdmtg8m0000gn/T/
java.library.path = /Users/edersoares/Library/Java/Extensions
/Library/Java/Extensions
/Network/Library/Java/Extensions
/System/Library/Java/Extensions
/usr/lib/java
.
java.runtime.name = OpenJDK Runtime Environment
java.runtime.version = 11.0.17+0
java.specification.name = Java Platform API Specification
java.specification.vendor = Oracle Corporation
java.specification.version = 11
java.vendor = Homebrew
java.vendor.url = https://github.com/Homebrew/homebrew-core/issues
java.vendor.url.bug = https://github.com/Homebrew/homebrew-core/issues
java.vendor.version = Homebrew
java.version = 11.0.17
java.version.date = 2022-10-18
java.vm.compressedOopsMode = Zero based
java.vm.info = mixed mode
java.vm.name = OpenJDK 64-Bit Server VM
java.vm.specification.name = Java Virtual Machine Specification
java.vm.specification.vendor = Oracle Corporation
java.vm.specification.version = 11
java.vm.vendor = Homebrew
java.vm.version = 11.0.17+0
jdk.debug = release
line.separator = \n
os.arch = x86_64
os.name = Mac OS X
os.version = 12.6
path.separator = :
socksNonProxyHosts = local|*.local|169.254/16|*.169.254/16
sun.arch.data.model = 64
sun.boot.library.path = /usr/local/Cellar/openjdk@11/11.0.17/libexec/openjdk.jdk/Contents/Home/lib
sun.cpu.endian = little
sun.cpu.isalist =
sun.io.unicode.encoding = UnicodeBig
sun.java.launcher = SUN_STANDARD
sun.jnu.encoding = UTF-8
sun.management.compiler = HotSpot 64-Bit Tiered Compilers
sun.os.patch.level = unknown
user.country = BR
user.dir = /Users/edersoares/GitHub/portabilis/i-diario-portabilis
user.home = /Users/edersoares
user.language = en
user.name = edersoares
user.timezone =
Locale settings:
default locale = English (Brazil)
default display locale = English (Brazil)
default format locale = English (Brazil)
Obrigado @edersoares, vou tentar replicar essa configurações e volto aqui para dar um retorno positivamente ou negativamente!
@edersoares, voltando aqui para deixar um retorno!
Fiz a alteração no banco de dados, porém ainda sem efeito na apresentação do caractere especial.
Documento emitido após a alteração do banco de dados:
Evidência da alteração do banco de dados:
Confesso que minhas opções se exauriram! Apostaria na versão/configuração da JVM utilizada pela portabilis e o que está documentado para a comunidade.
O documentado é java.vm.specification.version = 1.8
a informado no seu ambiente é java.vm.specification.version = 11
Ou no Locale settings
, pois está diferente entre as nossas evidências.
@kesllan, poderia testar com a versão do java 11 e essa questão do locale settings
e nos dar um retorno?
@robertfsousa @edersoares Eu verifquei as seguintes configurações e todas estão corretas:
Códificação do Java (que renderiza os relatórios)
@marcosoliveirasoares94 fiz o teste com openjdk 11 e os relatorios não funcionam> Porém encontrei uma solução alternativa:
$this->report->addArg('observacao', urlencode($this->getRequest()->observacao));
O método urlencode() é usado para codificar o valor do parâmetro em formato URL, assim so caracteres especiais são passados sem erros.
Boa @kesllan! Internamente nós usamos uma implementação customizada do JasperReports então não temos este erro.
A comunidade consegue atuar e abrir os PRs para fazerem estas correções?
Boa @kesllan! Internamente nós usamos uma implementação customizada do JasperReports então não temos este erro.
A comunidade consegue atuar e abrir os PRs para fazerem estas correções?
Eu posso fazer isso. Vou ver se o @marcosoliveirasoares94 me ajuda.
@kesllan,
Me parece que foi corrigido na branch 2.7 atual do pacote de relatórios.
Testei com a branch 2.8 atual do i-Educar.
Vou testar e se tiver tudo ok aqui. Já fecho a issue. Valeu
Encerrando, qualquer necessidade pode reabrir a issue ;)
MENU:
DESCRIÇÃO:
Toda informação que possuem caracteres especiais/acentuação que é digitada nos campos de observações dos relatórios são apresentadas com erros, ou seja, os caracteres especiais são substituidos por "?". Imagens anexas.
OBSERVAÇÕES:
Já abri um tópico no Fórum e já verifiquei a códificação do Postgres, do Servidor e do PHP e tudo está correto. https://forum.ieducar.org/t/erro-de-acentuacao-de-palavras-no-relatorio-de-atestado-de-frequencia/1338/9
*Observei que as informações que são passadas do banco de dados para o relatório e as informações estáticas não apresetam os referidos erros, somente as informações do textField do JasperReports
AMBIENTE: