<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>TecnoRetales &#187; Encoding</title>
	<atom:link href="http://www.tecnoretales.com/tag/encoding/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.tecnoretales.com</link>
	<description>La experiencia no se olvida</description>
	<lastBuildDate>Mon, 13 Sep 2010 21:37:21 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<!-- google ad injected by adsense-optimizer http://www.adsenseoptimizer.de -->
			<div  style="padding:7px; float: right; padding-right: 0; margin: 3px;"><!-- Ad number: 1 --><script type="text/javascript"><!--
    	 
    	google_ad_client = "pub-8208356787225078"; google_alternate_color = "FFFFFF";
		google_ad_width = 468; google_ad_height = 60;
		google_ad_format = "468x60_as"; google_ad_type = "text";
		google_ad_channel ="0708185857"; google_color_border = "FE8B00";
		google_color_link = "FE8B00"; google_color_bg = "FFFFFF";
		google_color_text = "000000"; google_color_url = "D9D9D9";
		google_ui_features = "rc:6"; //--></script>
		<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script></div>	<item>
		<title>Enmascarar mails para evitar SPAM</title>
		<link>http://www.tecnoretales.com/programacion/enmascarar-mails-para-evitar-spam/</link>
		<comments>http://www.tecnoretales.com/programacion/enmascarar-mails-para-evitar-spam/#comments</comments>
		<pubDate>Thu, 07 May 2009 19:12:29 +0000</pubDate>
		<dc:creator>Manel Pérez Mata</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Encoding]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Unicode]]></category>

		<guid isPermaLink="false">http://www.tecnoretales.com/?p=60</guid>
		<description><![CDATA[Aquí os dejo una forma sencilla de enmascarar un mail en una web de manera que, por pantalla mostrará el texto, sin embargo, si miramos el código fuente (o lo que es lo mismo, un bot visita nuestra web en busca de direcciones de correo electrónico) no encontraremos este texto.
El &#8220;truco&#8221; está en transformar cada [...]]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start --><p>Aquí os dejo una forma sencilla de enmascarar un mail en una web de manera que, por pantalla mostrará el texto, sin embargo, si miramos el código fuente (o lo que es lo mismo, un bot visita nuestra web en busca de direcciones de correo electrónico) no encontraremos este texto.</p>
<p>El &#8220;truco&#8221; está en <strong>transformar cada uno de los caracteres a unicode</strong> utilizando esta función que me he entretenido en programar:<span id="more-60"></span></p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">function</span> convertCP2HexNCR<span class="br0">&#40;</span><span class="re0">$textString</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="re0">$outputString</span>&nbsp; &nbsp;= <span class="st0">&quot;&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="re0">$CPstring</span>&nbsp; &nbsp;&nbsp; &nbsp; = <span class="st0">&quot;&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; <span class="kw1">for</span> <span class="br0">&#40;</span><span class="re0">$i</span> = <span class="nu0">0</span>; <span class="re0">$i</span> &lt; <a href="http://www.php.net/strlen"><span class="kw3">strlen</span></a><span class="br0">&#40;</span><span class="re0">$textString</span><span class="br0">&#41;</span>; <span class="re0">$i</span>++<span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$b</span> = <a href="http://www.php.net/ord"><span class="kw3">ord</span></a><span class="br0">&#40;</span><span class="re0">$textString</span><span class="br0">&#91;</span><span class="re0">$i</span><span class="br0">&#93;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$CPstring</span> .= <a href="http://www.php.net/dechex"><span class="kw3">dechex</span></a><span class="br0">&#40;</span><span class="re0">$b</span><span class="br0">&#41;</span>. <span class="st0">&#8216; &#8216;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;&nbsp; &nbsp;<span class="re0">$textString</span> = <a href="http://www.php.net/str_replace"><span class="kw3">str_replace</span></a><span class="br0">&#40;</span><span class="st0">&#8216;/^<span class="es0">\s</span>+/&#8217;</span>, <span class="st0">&#8221;</span>, <span class="re0">$CPstring</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><a href="http://www.php.net/strlen"><span class="kw3">strlen</span></a><span class="br0">&#40;</span><span class="re0">$textString</span><span class="br0">&#41;</span> == <span class="nu0">0</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="kw1">return</span> <span class="st0">&quot;&quot;</span>; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="re0">$textString</span> = <a href="http://www.php.net/str_replace"><span class="kw3">str_replace</span></a><span class="br0">&#40;</span><span class="st0">&#8221;</span>, <span class="st0">&#8216; &#8216;</span>,<span class="re0">$textString</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="re0">$listArray</span> = <a href="http://www.php.net/explode"><span class="kw3">explode</span></a><span class="br0">&#40;</span><span class="st0">&#8216; &#8216;</span>, <span class="re0">$textString</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">for</span> <span class="br0">&#40;</span><span class="re0">$i</span> = <span class="nu0">0</span>; <span class="re0">$i</span> &lt; <a href="http://www.php.net/count"><span class="kw3">count</span></a><span class="br0">&#40;</span><span class="re0">$listArray</span><span class="br0">&#41;</span>; <span class="re0">$i</span>++ <span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$n</span> = <span class="re0">$listArray</span><span class="br0">&#91;</span><span class="re0">$i</span><span class="br0">&#93;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$outputString</span> .= <span class="st0">&#8221;</span>.<span class="re0">$n</span>.<span class="st0">&#8216;;&#8217;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">return</span> <span class="re0">$outputString</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><a href="http://www.php.net/echo"><span class="kw3">echo</span></a> convertCP2HexNCR<span class="br0">&#40;</span><span class="st0">&quot;mehanhechoclick@yhacecosquillitas.com&quot;</span><span class="br0">&#41;</span>;</div>
</li>
</ol>
</div>
<p>Si ejecutamos este código PHP desde un navegador, veremos que por pantalla aparece el email, sin embargo, al hacer Ctr+U (en Firefox) o lo que es lo mismo, ver código fuente, veremos que el resultado es muy diferente, algo como:</p>
<pre>&amp;#x6d;&amp;#x65;&amp;#x68;&amp;#x61;&amp;#x6e;&amp;#x68;&amp;#x65;&amp;#x63;&amp;#x68;&amp;#x6f;&amp;#x63;&amp;#x6c;&amp;#x69;...</pre>
<p>En cualquier caso, es importante remarcar que <strong>no es un método infalible</strong> ya que, como os comentaba, lo que realmente estamos haciendo es transforar el texto a unicode, por lo tanto, un bot programado para tal efecto, sería capaz de detectar y recodificar el email, pero esos casos tienden a 0.</p>
<!-- google_ad_section_end -->]]></content:encoded>
			<wfw:commentRss>http://www.tecnoretales.com/programacion/enmascarar-mails-para-evitar-spam/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Convertir base de datos a UTF8</title>
		<link>http://www.tecnoretales.com/bases-de-datos/convertir-base-de-datos-a-utf8/</link>
		<comments>http://www.tecnoretales.com/bases-de-datos/convertir-base-de-datos-a-utf8/#comments</comments>
		<pubDate>Mon, 27 Apr 2009 08:10:55 +0000</pubDate>
		<dc:creator>Manel Pérez Mata</dc:creator>
				<category><![CDATA[Bases de datos]]></category>
		<category><![CDATA[Encoding]]></category>
		<category><![CDATA[ISO-8859-15]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[UTF8]]></category>

		<guid isPermaLink="false">http://www.tecnoretales.com/?p=3</guid>
		<description><![CDATA[Hace algún tiempo que tenía ganas de migrar una base de datos de ISO-8859-1 a UTF-8, pero cuando tienes un proyecto funcionando, hacer un cambio de este estilo es algo delicado y por lo tanto, uno intenta postergarlo. En cualquier caso, finalmente decidí liarme la manta a la cabeza y tirarlo adelante.
Por desgracia, no existe [...]]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start --><p>Hace algún tiempo que tenía ganas de <strong>migrar una base de datos de ISO-8859-1 a UTF-8</strong>, pero cuando tienes un proyecto funcionando, hacer un cambio de este estilo es algo delicado y por lo tanto, uno intenta postergarlo. En cualquier caso, finalmente decidí liarme la manta a la cabeza y tirarlo adelante.</p>
<p>Por desgracia, no existe una sentencia SQL que haga algo similar de manera sencilla, sin embargo, podemos conseguirlo utilizando el comando de Linux recode (evolución bastante más inteligente del antiguo iconv), os dejo detallados los pasos que seguí para hacer el cambio:<span id="more-3"></span></p>
<p>1) <strong>Exportamos</strong> la base de datos mediante el comando mysqldump:</p>
<pre>mysqldump -u  -p -f --single-transaction --opt -hlocalhost --all-databases | gzip -9 -c &gt; [FICHERO_EXPORTACION_BD]</pre>
<p>2) <strong>Recodificamos</strong> el archivo dump mediante el comando recode:</p>
<pre>recode iso-8859-15..utf8 &lt; [FICHERO_EXPORTACION_BD] &gt; [FICHERO_EXPORTACION_BD].utf8</pre>
<p>3) <strong>Editamos</strong> el archivo y reemplazamos &#8220;latin1&#8243; por &#8220;utf8&#8243;</p>
<p>4) <strong>Creamos la nueva base de datos con el encoding utf8</strong>:</p>
<pre>mysql -u [USER] -p [DBNAME] -e "CREATE DATABASE `[DBNAME]` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;"</pre>
<p>5) Por último, <strong>importamos</strong> la base de datos de la siguiente manera:</p>
<pre>mysql -u [USER] -p [DBNAME] &lt; [FICHERO_EXPORTACION_BD].utf8</pre>
<p><strong>NOTA!!</strong> En mi caso concreto, la aplicación PHP seguía mostrando errores al visualizar la información que provenía de base de datos a pesar de haber cambiado convenientemente los metas del html resultante. En mi caso era debido a que la conexión a la base de datos estaba forzada a leer en ISO. Esto lo solventé añadiendo justo después de la conexión:</p>
<pre>@mysql_query("SET character_set_results='utf8'");</pre>
<p>o si nuestra version de PHP es superior o igual a la 5.2.3, tambien podemos hacer:</p>
<pre>@mysql_set_charset("utf8", $link_identifier);</pre>
<!-- google_ad_section_end -->]]></content:encoded>
			<wfw:commentRss>http://www.tecnoretales.com/bases-de-datos/convertir-base-de-datos-a-utf8/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

