<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Retour à La Source • Tag: UTF-8 • RSS</title>
		<link>http://www.ab-d.fr/tag/UTF-8/</link>
		<description>Retour à La Source • Tag: UTF-8 • RSS</description>
		<copyright>http://www.ab-d.fr/tag/UTF-8/ (c) 2010</copyright>
		<language>fr</language>
		<pubDate>Sat, 31 Jul 2010 15:02:59 +0100</pubDate>
		<generator>Retour à La Source • Tag: UTF-8 • RSS • version 1.0</generator>
		<webMaster>noreply@ab-d.fr ( Benoit Asselin )</webMaster>
		<image>
			<url>http://www.ab-d.fr/images/rss.gif</url>
			<title>Retour à La Source • Tag: UTF-8 • RSS</title>
			<link>http://www.ab-d.fr/tag/UTF-8/</link>
			<width>90</width>
			<height>30</height>
		</image>

		<item>
			<title>Requête MySQL insensible aux accents dans une table latin1 ( mysql, sql )</title>
			<link>http://www.ab-d.fr/date/2008-06-21/</link>
			<pubDate>Sat, 21 Jun 2008 11:11:11 +0100</pubDate>
			<author>noreply@ab-d.fr ( Benoit Asselin )</author>
			<category><![CDATA[MySQL]]></category>
			<category><![CDATA[UTF-8]]></category>
			<description><![CDATA[<p>
Problème du jour : 
Vous avez une table en <code>latin1_general_ci</code> (<em>ou un interclassement assez proche</em>), et vous souhaitez effectuer une recherche sur le terme "<strong>cinéma</strong>" avec un <code>LIKE</code>.<br />
Un problème va se poser si l'utilisateur saisit "<strong>cin<ins>e</ins>ma</strong>" et non "<strong>cin<ins>é</ins>ma</strong>"... votre requête ne retournera aucun résultat...
</p>
<pre>
SELECT * FROM `table` WHERE `texte` LIKE '%cinema%' ;
</pre>

<p>
<br />
Une partie de la solution se trouve dans l'interclassement, si vous effectuez cette même requête <code>LIKE</code> dans une table en <code>utf8_general_ci</code>, le résultat retournera tous les "<strong>cinéma</strong>" !
</p>

<p>
Certains diront sûrement qu'il suffit de changer l'interclassement et le problème sera réglé mais parfois vous n'avez pas cette possibilité pour diverses raisons...<br />
Voici une solution qui je l'espère vous plaira, il "suffit" de traiter le texte reçu en <code>latin1</code> <code>ISO-8859-1</code> dans la requête avec un <code>CONVERT(_utf8 '%...%' USING utf8) COLLATE utf8_general_ci </code> :
</p>

<pre>
SELECT * FROM `table`
WHERE `texte` LIKE CONVERT(_utf8 '%cinema%' USING utf8) COLLATE utf8_general_ci ;
</pre>

<h3><br />En promo : Comment réinitialiser le numéro identifiant <code>AUTO_INCREMENT</code> dans une table ?</h3>
<pre>
ALTER TABLE `table` AUTO_INCREMENT = 1 ;
</pre>

<hr /><a href="http://res.feedsportal.com/viral/bookmark_fr.cfm?link=http%3A%2F%2Fwww.ab-d.fr%2Fdate%2F2008-06-21%2F&title=Requ%C3%AAte+MySQL+insensible+aux+accents+dans+une+table+latin1+%28+mysql%2C+sql+%29"><img src="http://www.ab-d.fr/images/bookmark.gif" border="0" /></a><br /><br />]]></description>
			<comments>http://www.ab-d.fr/tag/UTF-8/</comments>
			<guid isPermaLink="false">http://www.ab-d.fr/date/2008-06-21/</guid>
		</item>

		<item>
			<title>Comment supprimer les problèmes UTF-8 avec MySQL et PHP ?</title>
			<link>http://www.ab-d.fr/date/2007-11-23/</link>
			<pubDate>Fri, 23 Nov 2007 00:00:00 +0100</pubDate>
			<author>noreply@ab-d.fr ( Benoit Asselin )</author>
			<category><![CDATA[MySQL]]></category>
			<category><![CDATA[UTF-8]]></category>
			<category><![CDATA[PHP]]></category>
			<description><![CDATA[<p>Il faut spécifier dans les scripts PHP que les données transmises sont en UTF-8.</p>
<pre>
...

// avec MySQLi
mysqli_query($link, "SET NAMES 'utf8' ");

// ancienne méthode
mysql_query("SET NAMES 'utf8' ");

...
</pre>
<hr /><a href="http://res.feedsportal.com/viral/bookmark_fr.cfm?link=http%3A%2F%2Fwww.ab-d.fr%2Fdate%2F2007-11-23%2F&title=Comment+supprimer+les+probl%C3%A8mes+UTF-8+avec+MySQL+et+PHP+%3F"><img src="http://www.ab-d.fr/images/bookmark.gif" border="0" /></a><br /><br />]]></description>
			<comments>http://www.ab-d.fr/tag/UTF-8/</comments>
			<guid isPermaLink="false">http://www.ab-d.fr/date/2007-11-23/</guid>
		</item>

	</channel>
</rss>
