Problema de econding

18 respostas
J

olá,

estou tendo a seguinte situção:
WARNING: PWC4011: Unable to set request character encoding to UTF-8 from context /source, because request parameters have already been read, or ServletRequest.getReader() has already been called

isso sai no conosle do glassfish

e na tela da aplicação tenho coisas do tipo:
Cópia de imagem3.JPG
�ndice.png

como resolvo isso ?

Grato.

18 Respostas

J

Cara já tentou mudar pra ISO-8859-1

<form accept-charset="ISO-8859-1">
</form>
J

jweibe:
Cara já tentou mudar pra ISO-8859-1

<form accept-charset="ISO-8859-1"> </form>


nao tentei nao…
se eu mudar isso no hearder do arquvio xhtml em vez de colocar no form vai valer tb?

W

Se o seu arquivo “.java”:
tiver criado no encoding Cp1252 ou ISO-8859-1;
e ainda se você conseguir ler que os caracteres especiais do log estão corretos, sem corrupção,

Então faça o seguinte:

javac -encoding ISO-8859-1 ...

Caso esteja utilizando o ANT para compilar, informe o atributo encoding=“ISO-8859-1” na tag javac.

wiliamps

J

JJjava:
jweibe:
Cara já tentou mudar pra ISO-8859-1

<form accept-charset="ISO-8859-1"> </form>


nao tentei nao…
se eu mudar isso no hearder do arquvio xhtml em vez de colocar no form vai valer tb?

Se tu for mudar no hearder dos seus arquivos *.xhtml, crie um Filter e set o valor da request e response para
o chartset desejado. Eu já tive problemas com o Primefaces ao fazer upload ele bagunçava o charset dai os
caracteres vinha todo zuado… dai eu altero no form como o código e passei acima e ficou de boa.

J

JJjava:
jweibe:
Cara já tentou mudar pra ISO-8859-1

<form accept-charset="ISO-8859-1"> </form>


nao tentei nao…
se eu mudar isso no hearder do arquvio xhtml em vez de colocar no form vai valer tb?

estou usando
<h:form> JSF e esse atributo nao esta definido

J

JJjava:
JJjava:
jweibe:
Cara já tentou mudar pra ISO-8859-1

&lt;form accept-charset="ISO-8859-1"&gt; &lt;/form&gt;


nao tentei nao…
se eu mudar isso no hearder do arquvio xhtml em vez de colocar no form vai valer tb?

estou usando
<h:form> JSF e esse atributo nao esta definido

Cara tu ta usando JSF 2?

&lt;h:form acceptcharset="ISO-8859-1"&gt;&lt;/h:form&gt;
J

jweibe:
JJjava:
JJjava:
jweibe:
Cara já tentou mudar pra ISO-8859-1

&lt;form accept-charset="ISO-8859-1"&gt; &lt;/form&gt;


nao tentei nao…
se eu mudar isso no hearder do arquvio xhtml em vez de colocar no form vai valer tb?

estou usando
<h:form> JSF e esse atributo nao esta definido

Cara tu ta usando JSF 2?

&lt;h:form acceptcharset="ISO-8859-1"&gt;&lt;/h:form&gt;


sim estou usando JSF 2.1 com primefaces3.4 …

J

JJjava:
jweibe:
JJjava:
JJjava:
jweibe:
Cara já tentou mudar pra ISO-8859-1

&lt;form accept-charset="ISO-8859-1"&gt; &lt;/form&gt;


nao tentei nao…
se eu mudar isso no hearder do arquvio xhtml em vez de colocar no form vai valer tb?

estou usando
<h:form> JSF e esse atributo nao esta definido

Cara tu ta usando JSF 2?

&lt;h:form acceptcharset="ISO-8859-1"&gt;&lt;/h:form&gt;


sim estou usando JSF 2.1 com primefaces3.4 …

Então e isso mesmo… usa o

&lt;h:form acceptcharset="ISO-8859-1"&gt;&lt;/h:form&gt;

E cria um Filter e vai setando o charset na request e response.

J

estopu recendo o erro com o enconding novo

WARNING: PWC4011: Unable to set request character encoding to ISO-8859-1 from context /source, because request parameters have already been read, or ServletRequest.getReader() has already been called
J

jweibe:
JJjava:
jweibe:
JJjava:
JJjava:
jweibe:
Cara já tentou mudar pra ISO-8859-1

&lt;form accept-charset="ISO-8859-1"&gt; &lt;/form&gt;


nao tentei nao…
se eu mudar isso no hearder do arquvio xhtml em vez de colocar no form vai valer tb?

estou usando
<h:form> JSF e esse atributo nao esta definido

Cara tu ta usando JSF 2?

&lt;h:form acceptcharset="ISO-8859-1"&gt;&lt;/h:form&gt;


sim estou usando JSF 2.1 com primefaces3.4 …

Então e isso mesmo… usa o

&lt;h:form acceptcharset="ISO-8859-1"&gt;&lt;/h:form&gt;

E cria um Filter e vai setando o charset na request e response.

como seria esse filtro?

J

Posta o código do seu *.xhtml.
Da uma olhada nestes links aqui.
http://www.guj.com.br/java/240246-resolvido—jsf-problemas-com-acentuacao
http://javaevangelist.blogspot.com.br/2012/01/glassfish-default-encoding-iso-8859-1.html

J

XHTML

<?xml version='1.0' encoding='ISO-8859-1' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:p="http://primefaces.org/ui"
      xmlns:f="http://java.sun.com/jsf/core">
    <h:head>
        <style type="text/css">
            body {
                background-color: black;
                margin: 0;
                padding: 0;
                font-family: geneva, arial, helvetica, sans-serif;
                font-size:80%;
            }
        </style>
        <title>Files</title>
    </h:head>
    <h:body>
        <h:form enctype="multipart/form-data" id="files" acceptcharset="ISO-8859-1" >
            <p:menubar>  
                <p:menuitem value="Home"       url="/faces/index.xhtml"     icon="ui-icon-home" />  
                <p:menuitem value="Files"      url="/faces/files.xhtml"     icon="ui-icon-document" /> 
                <p:menuitem value="Upload"      url="/faces/up.xhtml"    icon="ui-icon-document" /> 
            </p:menubar>  
            <br></br>
            <p:dataTable id="table" var="file" value="#{lsBean.processFiles()}"> 
                <p:column headerText="Id">  
                    <h:outputText value="#{file.id}" />  
                </p:column>
                
                <p:column headerText="Name">  
                    <h:outputText value="#{file.name}" />  
                </p:column>  

                <p:column headerText="Path">  
                    <h:outputText value="#{file.path}" />  
                </p:column>  

                <p:column headerText="Size">  
                    <h:outputText value="#{file.size}" />  
                </p:column>  

                <p:column headerText="Options">  
                    <p:commandButton id="downloadLink" value="Download" ajax="false" onclick="PrimeFaces.monitorDownload(start, stop)"> 
                        <f:setPropertyActionListener value="#{file}" target="#{lsBean.virtualFile}" />  
                        <p:fileDownload  value="#{lsBean.file}" />  
                    </p:commandButton>
                    <p:commandButton id="delete" value="Delete" ajax="true" update="table" onclick="#{lsBean.deleteFile()}"> 
                        <f:setPropertyActionListener value="#{file}" target="#{lsBean.virtualFile}" />  
                    </p:commandButton>
                </p:column> 
            </p:dataTable>  
            <p:growl id="messages" showDetail="true"/>  
        </h:form>
        <script type="text/javascript">  
            function start() {  
                statusDialog.show();  
            }  
  
            function stop() {  
                statusDialog.hide();  
            }  
        </script>  
    </h:body>
</html>
J

Cara você não ta fazendo upload neste form por que você ta usando enctype=“multipart/form-data”?

J

acabei de ver uma coisa aqui, na verdade eu faço o up dos arquivos via esse aplicação e percebi q se eu colocar o os arquivos la na pasta o nome deles é exibido corretamente.
no processo de upload q esta mudando o nome dos arquivos.
tentei colocar o acceptcharset=“ISO-8859-1” no form do upload mais sem succeso

J

deve ter sido o copy e paste
rs

J

o problema esta quando faço o upload…

XHTML do upload

<?xml version='1.0' encoding='ISO-8859-1' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:p="http://primefaces.org/ui">
    <h:head>
        <style type="text/css">
            body {
                background-color: black;
                margin: 0;
                padding: 0;
                font-family: geneva, arial, helvetica, sans-serif;
                font-size:80%;
            }
        </style>
        <title>Source</title>
    </h:head>
    <h:body>
        <h:form enctype="multipart/form-data" id="envia" acceptcharset="ISO-8859-1">
            <p:menubar>  
                <p:menuitem value="Home"       url="/faces/index.xhtml"     icon="ui-icon-home" />  
                <p:menuitem value="Files"      url="/faces/files.xhtml"     icon="ui-icon-document" /> 
                <p:menuitem value="Upload"      url="/faces/up.xhtml"    icon="ui-icon-document" /> 
            </p:menubar> 
            <h:outputLabel>Enviar Arquivo: </h:outputLabel>
            <p:fileUpload id="file"
                          fileUploadListener="#{fileUploadController.processFileUpload}"  
                          mode="advanced"
                          multiple="true"
                          update="messages"  
                          auto="true"  
                          sizeLimit="900000000"   
                          allowTypes="/(\.|\/)(|doc|zip|txt|xls|rtf|pdf|gif|jpe?g|png|bmp|html|xml)$/"/>  

            <p:growl id="messages" showDetail="true"/>  
        </h:form>
    </h:body>
</html>
A

Encoding é um problema muito mais chato do que parece, o problema pode não estar apenas na pagina web, JSP, etc

Dê uma lida no tópico do Luca http://www.guj.com.br/java/12456-qual-character-encoding-usar-em-sites-spara-brasileiros

Faça um checklist das variáveis do seu ambiente, acho que pode ajudar

Abs

J

André Fonseca:
Encoding é um problema muito mais chato do que parece, o problema pode não estar apenas na pagina web, JSP, etc

Dê uma lida no tópico do Luca http://www.guj.com.br/java/12456-qual-character-encoding-usar-em-sites-spara-brasileiros

Faça um checklist das variáveis do seu ambiente, acho que pode ajudar

Abs

Valeu pela dica.
Vou fazer o checklist do post q vc passou e tentar resolver, nao achei q poderia ser tão chato para resolver isso.

Criado 4 de outubro de 2012
Ultima resposta 4 de out. de 2012
Respostas 18
Participantes 4