Y bueno aunque nadie ha preguntado…

El otro dia le preguntaba a Gunnar si lo que me ayudo a hacer con mi DB de convertir de utf8 a latin1, se podria aplicar a texto, plano mas especificamente a un index.html, por cierto pongo el codigo como quedo por que me parece muy eficiente y bueno (y me demostro que nomas no se me da el perl

[code=’Perl’]
#!/usr/bin/perl
# This is a script from Gunnar gwolf at gwolf dot org
# Coded in I think 10 minutes… Very well done, get me out from a
# week of troubles with my tables.
use DBI;
use Text::Iconv;
$iconv = Text::Iconv->new(«utf8″,»latin1»);
$dbh=DBI->connect(«dbi:mysql:dbname=DBNAME;host=IFYOUHADOTHERTHANlocalhost;»,»user»,»pass»);
$sth1=$dbh->prepare(«SELECT ID_MSG, body FROM your_table»);
$sth2=$dbh->prepare(«UPDATE your_table SET body=? WHERE ID_MSG=?»);
$sth1->execute;
while (($ID_MSG,$body) = $sth1->fetchrow_array) {
$body_conv = $iconv->convert($body);
$body_conv = $body unless $body_conv;
$sth2->execute($body_conv, $ID_MSG);
[/code]

Pero iba a como resolvi lo de mi planet… es decir el de http://blografia.net, que en realidad fue todo un desgorre, como estoy hosteado en una maquina con RHAS y Plesk (no desición mia) y movi todo de mi bonita maquina Debian Sarge, muchas cosas se rompieron, primero con los locales y luego algo no le gusto al python cuando borre los compilados para probarlos en la nueva maquina me estaba escupiendo la pagina principal en una mezcla rara de iso-8859-1 y UTF-8 mezclado!, se me ocurrio por cierto preguntarle a Damog, como le habia hecho para solucionarlo con planetalinux y pues me dijo que con un perlaso, como no se me ocurrio como pasar lo que escribio Gunnar a una cosa que no fuera una DB, (por cierto que el que me paso era para PostgresSQL pero el modulo de mysql no difiere mucho del de postgres en cuanto al uso), entonces pues recorde que iconv es tambien una función del sistema (claro no sin antes intentar tres mounstrosidades de Perl que no tenian ni pies ni cabeza), me vino la iluminacion y dije, por que no..

iconv -f utf8 -t iso-8859-1 index.html

Tal cual… y pues «casi» funciono, como mencione estaba un tanto mezclado entre utf-8 , iso-8859-1 y alguna otra cosa mas… asi que me regreso un:
iconv: illegal input sequence at position 3082

un man iconv dio:
No manual entry for iconv

Asi que no insiti mas y me puse a pensar en otra forma de arreglar el problema, fui a la pagina de planetplanet y como el codigo aun el de cvs seguia siendo el mismo que yo tenia me puse a pensar que se le podria mover… en vez anterior Alvaro Mera del Castillo, me comento de algunas opciones en el config sobre los locales que podian ayudar, por el problema ya mencionado del cambio de servidor… estos parecian no funcionar y como no tenia opción a pedir que estos fueran instalados, segui revisando el codigo, con lo que recorde que alguna vez en mis logs de apache encontre que una parte interesante del codigo del planet era el http://feedparser.org/ me fui a dar una vuelta por ahi, casi no entiendo python, pero si me di cuenta que el que usa el planet no es el ultimo release del feedparser asi que me dije, ¿y si remplazamos el feedparser por el nuevo? probablemente tenga mejor manejo del utf… y bueno para no hacerla larga eso hice y mas o menos se arreglo la cosa.

Sin embargo la pagina aunque ya con UTF-8 del bueno, seguia mostrandomela el firefox como iso-8859-1 diantres, por ahi me cayo el veinte de que desde que se usa apache 2 por default se elige un locale… en este cso el mentado iso.

Asi que como ya me modernize y deje de hacer telnet server 80, GET / pase a utilizar curl -I servidor :D

curl -I servidor.net
HTTP/1.1 200 OK
Date: Sat, 25 Mar 2006 20:47:03 GMT
Server: Apache/2
Last-Modified: Sat, 25 Mar 2006 20:39:43 GMT
ETag: «11cb7d-341ea-bdc481c0»
Accept-Ranges: bytes
Content-Length: 213482
Connection: close
Content-Type: text/html; charset=iso-8859-1

Y tal cual el charset default es iso-8859-1 aun cuando en el Meta yo especifique UTF-8 investigando mas a fondo me encontre que como es un binario modificado por plesk… pues no hay gran cosa que hacer… asi que si a la fecha ven blografia.net con chiringolitos… a mano tendran que seleccionar el charset correcto, que es UTF-8 y como veran nunca logre escribir mi scripsito de perl que lo convirtiera, pero si quedo mas mejor mi planet, y nomas no tengo chance de moverle al charset ;D, en fin aprendi de todo menos de lo que originalmente queria.

**If this is supposed to be a new economy, how come they still want my old fashioned money?**

Esta entrada fue publicada en Sin categoría. Guarda el enlace permanente.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.