Shell Script e UTF8  TOPIC_SOLVED

Topics Programming. Not necessarily about the BrazilFW!

Shell Script e UTF8

Mensagempor daniel.uramg » Sex Abr 13, 2012 1:02 pm

Olá pessoal,
fiz um gerador de XML em SH que rodo no meu BFW 2.x, porém o arquivo fica salvo com codificação ANSI, e preciso que seja em UTF8
esse XML é pra enviar pra um serviço do Google, dai quando envio da um erro na linha e caractere tal, onde tem um acento
se eu baixar este XML pro PC, abrir com o FrontPage e salvar, ai ele converte e dai envio pro Google ai da tudo Ok.

a maneira q achei de converter no Linux pra UTF8 é com o iconv (http://linux.die.net/man/1/iconv)
até achei o libconv aqui no forum, mas não consegui fazer funcionar

alguem sabe como faço??

grato
Avatar do usuário
daniel.uramg
BFW Beneméritos
 
Mensagens: 1426
Registrado em: Qua Mai 20, 2009 4:42 pm
Localização: Taguatinga - DF
BrazilFW Box: Athlon XP 2400+ 1Gb RAM HD 20Gb
BFW 2.31.10+SP1, Squid, DNS Cache, EasyCaptive, MySAR, Apache, SCA, SqStat, EasyBackup. Bandwidth, Pure-FTP

Re: Shell Script e UTF8

Mensagempor jhonfw » Seg Abr 16, 2012 7:06 pm

hola
iconv sale de glibc
uclibc para 2.x
y eglibc para 3.x

deben estar sin compilar en el buildtree
al menos en la version 3
en la 2.32 supongo

de preferencia use las que están en el buildtree
Avatar do usuário
jhonfw
BFW Advanced
 
Mensagens: 1076
Registrado em: Seg Fev 02, 2009 9:35 pm
BrazilFW Box:

Re: Shell Script e UTF8

Mensagempor daniel.uramg » Ter Mai 15, 2012 4:59 pm

Ola jhonfw, cara o problema é que no BFW não tem o iconv compilado
até existe um addon libiconv.tgz, mas não consegui funcionar de geito nenhum
pesquisei bastante e a solução mais pratica que achei foi com o iconv mesmo, mas precisaria compilar ele pro BFW,e como fazer isso não é tão simples e minha necessidade não é tão grande estou baixando este XML manualmente abro e salvo no FrontPage que ele converte, por hora esta sendo a melhor alternativa!

Grato
Avatar do usuário
daniel.uramg
BFW Beneméritos
 
Mensagens: 1426
Registrado em: Qua Mai 20, 2009 4:42 pm
Localização: Taguatinga - DF
BrazilFW Box: Athlon XP 2400+ 1Gb RAM HD 20Gb
BFW 2.31.10+SP1, Squid, DNS Cache, EasyCaptive, MySAR, Apache, SCA, SqStat, EasyBackup. Bandwidth, Pure-FTP

Re: Shell Script e UTF8

Mensagempor ThiagoNG » Ter Mai 15, 2012 7:09 pm

daniel.uramg escreveu:Ola jhonfw, cara o problema é que no BFW não tem o iconv compilado
até existe um addon libiconv.tgz, mas não consegui funcionar de geito nenhum
pesquisei bastante e a solução mais pratica que achei foi com o iconv mesmo, mas precisaria compilar ele pro BFW,e como fazer isso não é tão simples e minha necessidade não é tão grande estou baixando este XML manualmente abro e salvo no FrontPage que ele converte, por hora esta sendo a melhor alternativa!

Grato

Dani boy meu caro, quanto tempo!
Seguinte, se por acaso tiver ai as info dessa lib passa pra gente aqui que tentamos compilar ela uai...rssrs
Abraços brother.
ThiagoNG
 

Re: Shell Script e UTF8  TOPIC_SOLVED

Mensagempor br_lemes » Qua Mai 16, 2012 1:45 am

Coloquei o iconv nos meus build scripts (também no github)

Compiladinho (BFW 2.x): http://dl.dropbox.com/u/1903205/libiconv.tgz
Mas faz download ai e avisa, que não vou deixar para sempre no Dropbox.

No BFW 3.x se não me engano tem na buildtree, só pegar de lá.
Se você tem uma maçã e eu tenho outra; e nós trocamos as maçãs, então cada um terá sua maçã. Mas se você tem uma ideia e eu tenho outra, e nós as trocamos; então cada um terá duas ideias.

http://www.br-lemes.net/
Avatar do usuário
br_lemes
BFW Beneméritos
 
Mensagens: 82
Registrado em: Dom Jun 19, 2011 12:46 am
Localização: Apiacás - MT
BrazilFW Box:

Re: Shell Script e UTF8

Mensagempor daniel.uramg » Qua Mai 16, 2012 10:30 am

br_lemes escreveu:Coloquei o iconv nos meus build scripts (também no github)

Compiladinho (BFW 2.x): http://dl.dropbox.com/u/1903205/libiconv.tgz
Mas faz download ai e avisa, que não vou deixar para sempre no Dropbox.

No BFW 3.x se não me engano tem na buildtree, só pegar de lá.

:aplause: :aplause: fechou com esse seu Addon agora!
eu tinha baixado esta lib da pasta do Nachazo (http://www.brazilfw.com.br/users/nachazo/official/librerias/libiconv.tgz)
este tem 620Kb, não funcionou, a sua tem 1.24Mb e funcionou perfeitamente!

valew br_lemes, jhonfw e ThiagoNG abraks!

PS: Thiago, agora é ThiagoNewGeneration?? rsrsrs
Avatar do usuário
daniel.uramg
BFW Beneméritos
 
Mensagens: 1426
Registrado em: Qua Mai 20, 2009 4:42 pm
Localização: Taguatinga - DF
BrazilFW Box: Athlon XP 2400+ 1Gb RAM HD 20Gb
BFW 2.31.10+SP1, Squid, DNS Cache, EasyCaptive, MySAR, Apache, SCA, SqStat, EasyBackup. Bandwidth, Pure-FTP

Re: Shell Script e UTF8

Mensagempor ThiagoNG » Qua Mai 16, 2012 3:24 pm

br_lemes escreveu:Coloquei o iconv nos meus build scripts (também no github)

Compiladinho (BFW 2.x): http://dl.dropbox.com/u/1903205/libiconv.tgz
Mas faz download ai e avisa, que não vou deixar para sempre no Dropbox.

No BFW 3.x se não me engano tem na buildtree, só pegar de lá.

Muito show mesmo Breno, Valeu por mais essa grande contribuição.
Obrigado mesmo. :aplause: :aplause: :aplause: :aplause: :aplause: :aplause: :aplause:
daniel.uramg escreveu:
br_lemes escreveu:Coloquei o iconv nos meus build scripts (também no github)

Compiladinho (BFW 2.x): http://dl.dropbox.com/u/1903205/libiconv.tgz
Mas faz download ai e avisa, que não vou deixar para sempre no Dropbox.

No BFW 3.x se não me engano tem na buildtree, só pegar de lá.

:aplause: :aplause: fechou com esse seu Addon agora!
eu tinha baixado esta lib da pasta do Nachazo (http://www.brazilfw.com.br/users/nachazo/official/librerias/libiconv.tgz)
este tem 620Kb, não funcionou, a sua tem 1.24Mb e funcionou perfeitamente!

valew br_lemes, jhonfw e ThiagoNG abraks!

PS: Thiago, agora é ThiagoNewGeneration?? rsrsrs

Eita brother, nem fala nessa nova geração....kkkkk más eh por ae...rsrs abraços meu irmaão, sucesso pra ti ae.
aparece pra trocarmos ideias :D
ThiagoNG
 

Re: Shell Script e UTF8

Mensagempor fabiosammy » Qua Mai 16, 2012 3:30 pm

Fugindo um pouco do tópico...

Uns tempos, a galera postava tudo o que fazia com o bfw, até mesmo veio uns tempos o pessoal fazendo joguinhos nele! (Sim, eu vi isso, era no estilo de pacman, space invaders entre outros...) E eu achava o máximo.

Daniel, porque você não posta detalhes do que ta fazendo, ou como fez? Eu acho que deixar esse tipo de tópico exposto, ajuda pra quem gosta de brincar com o sistema. (Eu sou um que no fork, posto até se eu troquei a ordem de letras, rs... e ja recebi elogios) Eu acho que devemos "fomentar" esse lado do projeto que anda "desgastante".

Abraços
fabiosammy
 

Re: Shell Script e UTF8

Mensagempor daniel.uramg » Qua Mai 16, 2012 3:49 pm

Fabio, o esquema aqui nesse caso é o seguinte!:
eu fiz minha "loja virtual" toda em CGI no BFW, tem um formulario em CGI por onde cadastro os itens, que ficam salvos em arquivos texto no servidor, e quando acessam o site que é também em CGI ele monta a estrutura dos anuncios dos produtos "on the fly"

então fiz este gerador de XML para que estes produtos apareçam no Google Shopping, o Google Merchant (por onde se cria os anuncios pra aparecer no Shopping) tem como eu adicionar Feeds de Dados e programar pra baixar com hora agendada, então sempre que cadastro/removo/edito algum produto no meu site, eu já gero este XML que vai ser lido toda noite pelo Merchant pra ficar sempre atualizado.

Veja este é um XML pronto gerado:
http://www.digipaperinformatica.com/produtos.xml

o código do script gerador é extremamente simples:
Código: Selecionar todos
#!/bin/sh
#Gerador de XML para WebLoja - daniel.uramg 04/2012
PATH="/partition/webloja"
PATHWEB="/partition/apache/htdocs/digipaperinformatica"

#CRIA ESTRUTURA INICIAL DO XML
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>
<rss xmlns:g=\"http://base.google.com/ns/1.0\" version=\"2.0\">
   <channel>
      <title>Digipaper Informática</title>
      <link>http://www.digipaperinformatica.com</link>
      <description>Computadores, impressoras, monitores e notebook usados com excelente qualidade e gatantia!</description>
">$PATHWEB/init.xml

#LE CADA ARQUIVO DOS PRODUTOS
   ls $PATH/produtos | sort -n -r | while read ID; do
QTD=`grep "^Quantidade:" $PATH/produtos/$ID | sed 's/^Quantidade: //'`
ITEM=`grep "^Produto:" $PATH/produtos/$ID | sed 's/^Produto: //'`
VALOR=`grep "^Valor:" $PATH/produtos/$ID | sed 's/^Valor: //'`
CATEGORIA=`grep "^Categoria:" $PATH/produtos/$ID | sed 's/^Categoria: //'"`
PESO=`grep "^Peso:" $PATH/produtos/$ID | sed 's/^Peso: //'`
DESC=`grep "^Descrição:" $PATH/produtos/$ID | sed 's/^Descrição: //' | sed 's/%20/ /g' | sed 's/&/n/g' | sed 's/<[^>]*>//g' | sed 's/</ /g' | sed 's/>/ /g'`
MARCA=`grep "^Marca:" $PATH/produtos/$ID | sed 's/^Marca: //'"`
TIPO=`grep "^Tipo:" $PATH/produtos/$ID | sed 's/^Tipo: //'"`
[ -z "$TIPO" ] && TIPO="used"

#SE QUANTIDADE FOR MAIOR QUE "0" SEGUE
      if [ "$QTD" -gt 0 ]; then
echo "      <item>
         <title>$ITEM</title>
         <link>http://www.digipaperinformatica.com/?main=genhtml.cgi?PRODID=$ID</link>
         <description>$DESC</description>
         <g:id>$ID</g:id>
         <g:brand>$MARCA</g:brand>
         <g:condition>$TIPO</g:condition>
         <g:price>R\$ $VALOR</g:price>
         <g:availability>in stock</g:availability>
         <g:image_link>http://www.digipaperinformatica.com/imagens/$ID-1.jpg</g:image_link>" >>$PATHWEB/init.xml

#SE EXISTIR SEGUNDA IMAGEM
   if [ -e "$PATHWEB/imagens/$ID-2.jpg" ]; then
echo "         <g:image_link>http://www.digipaperinformatica.com/imagens/$ID-2.jpg</g:image_link>" >>$PATHWEB/init.xml

#SE EXISTIR TERCEIRA IMAGEM
   fi
   if [ -e "$PATHWEB/imagens/$ID-3.jpg" ]; then
echo "         <g:image_link>http://www.digipaperinformatica.com/imagens/$ID-3.jpg</g:image_link>" >>$PATHWEB/init.xml
   fi

echo "         <g:shipping>
            <g:country>BR</g:country>
            <g:service>Encomenda PAC - Correios</g:service>
            <g:price>R\$ $VALOR</g:price>
         </g:shipping>
         <g:product_type>$CATEGORIA</g:product_type>
      </item>
" >>$PATHWEB/init.xml
      fi
   done
#FECHA ESTRUTURA DO XML
echo "   </channel>
</rss>" >>$PATHWEB/init.xml

#CONVERTE XML PARA CODIFICAÇÃO UTF-8
/usr/bin/iconv -f WINDOWS-1252 -t UTF-8 $PATHWEB/init.xml > $PATHWEB/produtos.xml
rm $PATHWEB/init.xml


a loja virtual tem umas falhas de segurança então por enquanto não posso postar as fontes dela, mas quando ageitar posto ela toda aqui no fórum também
Avatar do usuário
daniel.uramg
BFW Beneméritos
 
Mensagens: 1426
Registrado em: Qua Mai 20, 2009 4:42 pm
Localização: Taguatinga - DF
BrazilFW Box: Athlon XP 2400+ 1Gb RAM HD 20Gb
BFW 2.31.10+SP1, Squid, DNS Cache, EasyCaptive, MySAR, Apache, SCA, SqStat, EasyBackup. Bandwidth, Pure-FTP

Re: Shell Script e UTF8

Mensagempor fabiosammy » Qua Mai 16, 2012 3:57 pm

Muito show!!! :aplause:

Ta usando o "tinyphp"? Ou servidor apache?

Quanto a essa linha:
Código: Selecionar todos
QTD=`grep "^Quantidade:" $PATH/produtos/$ID | sed 's/^Quantidade: //'`

Da para mudar para isso:
Código: Selecionar todos
QTD=$(awk -F ":" '/^Quantidade:/{ print $2 }' $PATH/produtos/$ID)

Remove chamada para um outro programa, otimizando a memória. É uma dica. :mrgreen:
fabiosammy
 

Re: Shell Script e UTF8

Mensagempor daniel.uramg » Qua Mai 16, 2012 4:43 pm

fabiosammy escreveu:Muito show!!! :aplause:

Ta usando o "tinyphp"? Ou servidor apache?

Quanto a essa linha:
Código: Selecionar todos
QTD=`grep "^Quantidade:" $PATH/produtos/$ID | sed 's/^Quantidade: //'`

Da para mudar para isso:
Código: Selecionar todos
QTD=$(awk -F ":" '/^Quantidade:/{ print $2 }' $PATH/produtos/$ID)

Remove chamada para um outro programa, otimizando a memória. É uma dica. :mrgreen:

po cara show valew por essa dica, ja corrigi nas variavel tudo hehehe

cara ta rodando no Apache, Shell puro aqui! :mrgreen:
Avatar do usuário
daniel.uramg
BFW Beneméritos
 
Mensagens: 1426
Registrado em: Qua Mai 20, 2009 4:42 pm
Localização: Taguatinga - DF
BrazilFW Box: Athlon XP 2400+ 1Gb RAM HD 20Gb
BFW 2.31.10+SP1, Squid, DNS Cache, EasyCaptive, MySAR, Apache, SCA, SqStat, EasyBackup. Bandwidth, Pure-FTP


Voltar para Programming

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 2 visitantes

cron