SQL Server 2005 Collate vs PHP

Então pessoal, dessa vez foi realmente foda.
NUNCA fiquei tanto tempo sem postar aqui, e tipo, não devia ter feito isso. Seriously.

Tirei férias, peguei freela, quebrei o dedo mindinho da mão esquerda, aprendi a mexer com ‘opensocial’, aprendi a mexer com muita coisa, comprei um Motorola Milestone (com Android!! Daqui a pouco, posts sobre Android aqui pra vocês!!), troquei de emprego, troquei de emprego de novo.

Enfim, no meu novo emprego, na Plan B, passei por um probleminha não muito comum (eu acho), lidar com PHP buscando dados de uma base em SQL Server 2005.

Eu estava trabalhando num arquivo cuja codificação era UTF-8. Na hora de exibir os dados vindos do banco, dava erro na codificaão, exibindo aquele caractere com uma ‘?’ dentro de um losango (acho que todo developer conhece esse símbolo!! hahaha..).
Fui tentando as opções de praxe:

<?php
    echo utf8_encode($bd->nome);
    echo utf8_decode($bd->nome);
    echo utf8_encode(htmlentities($bd->nome));
    echo htmlentities(utf8_encode($bd->nome));
    echo utf8_decode(htmlentities($bd->nome));
    echo htmlentities(utf8_decode($bd->nome));
?>

Acontece que a collation padrão do SQL Server é SQL_Latin1_General_CP1_CI_AS. E isso eu só descobri depois.
Qual foi então a minha solução?! Depois de umas belas pesquisadas e uma grande ajuda do Leandro Rodrigues, conseguimos foi na query de busca dos dados, fazermos um CAST no campo e definimos a collation dele ali mesmo, dessa maneira:

SELECT CAST({campo} AS {tipo}) COLLATE {collation} AS {alias}
FROM {tabela}'

Então, o caso foi colocar a collation ‘Latin1_General_BIN’, ficando assim:

SELECT CAST(nome AS nvarchar(255)) COLLATE Latin1_General_BIN AS nome
FROM usuarios'

E depois, colocar no PHP a função ‘uft8_encode();’ na hora de exibir os dados.

<?php
    echo utf8_encode($bd->nome);
?>

Pra quem nunca mexeu com SQL Server e achar estranho, eu digo SIM, existe um tipo de dado chamado ‘nvarchar’, com esse ‘N’ na frente mesmo. ;D

Então é isso, a solução foi essa e funcionou perfeitamente.

Um grande abraço, pessoal!!

BH Coding Dojo…

Lembram do BH Coding Dojo? Pois então, o projeto foi “descontinuado”.
Vários motivos levaram a este triste fim. Um dos idealizadores, o Ronaldo Ferraz, mudou-se para São Paulo, o outro, Diógenes não se manifestou mais, quem participou das (apenas) 2 ediçoes do Dojo também ficaram quietos.

É triste como a cena de programação em Belo Horizonte não é ativa. Pelo que sei (afinal, tem pouco tempo que faço parte dessae grupo) quase não aparecem palestras, eventos e afins sobre programação por aqui.

Como o BH Coding Dojo foi “descontinuado”, eu, o Marcelo Torres, o Gilberto Saraiva, o Bruno Souza e o Victor Gollnik, resolvemos “retomar” a reunião.

O nome mudou, agora se chama BHCode, remodulamos um pouco a questão do Dojo pelo fato de muitas características do mesmo não se adequar ao que pretendemos com o novo grupo, mas algumas características se mantêm.
Quem se encontra interessado, o link acima o leva a todo o conteúdo do BHCode.

Conto com a presença do pessoal de programação de BH.

Um abraço a todos!

Resumo do final de semana

O final de semana foi até produtivo.
Depois de muito tempo, fuquei praticamente o final de semana em casa:

Isso mesmo, não sei se já falei isso aqui alguma vez, mas eu morava em BH, morei durante 5 anos na casa da minha avó, e agora voltei a morar na casa da minha mãe (em Betim, minha casa!), mas como meus laços com BH são muito fortes, ainda fico muitos finais de semana na capital mineira.
Nesse final de semana resolvi ficar em casa.

Primeiramente, de sexta pra sábado fui dormir já eram 3:40h e acordei no sábado 12:30h. No sábado, tirei o dia (ou parte dele, afinal, acordar 12:30h……) para realizar uns bakcups (HD de 60Gb é foda!) para instalar o Delphi 2007, pois é, resolvi criar aplicações para RWindows. Mas calma! Só até aprender PHP-GTK. Como eu estava com muito sono, e acabei de fazer os backups às 02:36h, deixei o Delphi instalando enquanto fui dormir. Ao acordar descobri que o nView (componente do driver da minha placa de vídeo NVIDIA GeForce Go 6150), estava travando. Quando eu deixo o note ligado muito tempo sem mexer nele, o nView trava. Reinstalei o aplicativo e nada, continuava travando. Como eu não utilizava muito, apenas o desativei. Pronto.

Domingo, o dia de mexer no Delphi 2007. Grande coisa! Não achei tutoriais, nem apostilas (não procurei direito). O jeito foi pedir “ajuda” a quem já trabalha com isso há MUITO tempo, o Marcelo Torres. O máximo que consegui fazer, mesmo porque não tava tão afim de mexer no Delphi (Object Pascal é muito ruim!), foi uma caixinha que mostra na tela a palavra que você digitou. 🙂 Grande coisa, não?!

Na parte da tarde, fui ao primeiro encontro formal do PortalProgramação.org! PortalProgramação.org? Nunca comentei dele aqui! 😛 É um fórum, idealizado por mim (Lucas Mezêncio) e pelo Marcelo Torres.
Esse fórum tem como princípio, o compartilhamento de informações através de dicas, conceitos e estudos de programação.
O encontro foi realizado comigo, Marcelo Torres, Gilberto Saraiva e Victor.
A comunidade do fórum ainda é bem pequena, porém, depois desse nosso primeiro encontro formal, pretendemos ampliar o pessoal. Nosso encontro foi para conversarmos sobre o nosso “Coding Dojo“.
Na verdade, a reunião foi para resolver sobre o nome “Coding Dojo”, pois não queremos seguir à risca as especificações do Dojo. No nosso blog, ainda está a terminologia Coding Dojo, mas brevemente iremos mudar.

Acompanhe os updates do Portal por aqui ou então em nosso blog!

Um abraço e até a próxima

Peladão! – CSS Naked Day 2008

NÃO SE PREOCUPE! MEU BLOG NÃO ESTÁ COM BUGS!

Aeeee! Hoje é dia de ficar pelado!

Hehehe… Hoje é dia de CSS Naked Day! Um dia por ano, meu blog ficará assim: sem nenhum “estilo visual”.
O CSS Naked Day (alguma coisa como “Dia Pelado de CSS”) serve para promover o bom resultado dos “Padrões Web“.

Então é isso!

Abraços!