terça-feira, 27 de setembro de 2011

Spring Framework e UTF-8

Se não estou enganado, em cinco anos trabalhando como analista de sistemas, foi a primeira vez  que me deparei com um problema de encodificação "UTF-8".
Tentei resolver o problema de diversas maneiras:


O projeto esta em Struts 1.3.8, o primeiro passo foi verificar a resposta da minha requisição.
request.getParameter("param")
new String((request.getParameter("param").getBytes(), "UTF-8")
new String((request.getParameter("param").getBytes(), "ISO-8859-1")
E confirmei minhas suspeitas, a String chegava na action do struts com os valores errados e não achei maneiras de converte-los.


Verifiquei as JSP's e as definições de encode estavam corretas:
<%@page contentType="text/html" pageEncoding="UTF-8"%>


Em seguida, verifiquei um dos arquivos de configuração do Tomcat o "server.xml":
<Connector port="8080" protocol="HTTP/1.1" 
           connectionTimeout="20000" 
           redirectPort="8443" URIEncoding="UTF-8" />


E pra variar um pouco, encontrei a solução no site do GUJ: implementar um filtro do Spring.
Após adicionar algumas linhas ao "pom.xml" e ao "web.xml":


"pom.xml"
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
<version>2.5.6</version>
</dependency>


"web.xml"
<filter>
<filter-name>charsetFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>charsetFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>


Testei em diversas rotinas do aplicativo e todos os problemas com encodificação e acentos estavam resolvidos.

quinta-feira, 1 de setembro de 2011

Habilitando PHP no Mac OSX


Vamos lá, não há muito oque falar neste post tentei abordar tudo de uma forma simples.


No terminal digite: 
'sudo vi /private/etc/apache2/httpd.conf'


Descomente a linha:
LoadModule php5_module      libexec/apache2/libphp5.so


Entre no diretório onde esta o php.ini.default e faça uma cópia dele para definir os parâmetros do php5
caso contrario as configurações padrão serão aplicadas automaticamente:
'cd /private/etc'
'sudo cp php.ini.default php.ini'


Edite o arquivo 'php.ini' na linha 305 procure a palavra 'error_reporting' altere para: 
'error_reporting = E_ALL'


Importante: Esta alteração vai impedir que alguns erros importantes sejam omitidos.


Agora a parte gráfica que deixa tudo mais fácil, rs :)
System Preferences > Sharing > Internet & Network > Web Sharing


Na tela acima você já pode visualizar os diretórios tanto via http para serem acessados pelo navegador e onde salvar os arquivos físicos.


Qualquer dúvida estou ai ...


http://foundationphp.com/tutorials/php_leopard.php