[linux] Re: mysql / utf8 problemen
Robert M. Stockmann
stock op stokkie.net
Di Nov 14 17:19:36 CET 2006
On Tue, 14 Nov 2006, Wybo Dekker wrote:
> Date: Tue, 14 Nov 2006 16:20:05 +0100
> From: Wybo Dekker <wybo op servalys.nl>
> Reply-To: linux op lists.nllgg.nl
> To: linux op lists.nllgg.nl
> Subject: [linux] Re: mysql / utf8 problemen
>
> Robert Stockmann schreef:
>
> probeer het hier eens mee :
>
> [jackson:stock]:(~)$ locale
> LANG=en_US
> LC_CTYPE=en_US
> LC_NUMERIC=en_US
> LC_TIME=en_US
> LC_COLLATE=en_US
> LC_MONETARY=en_US
> LC_MESSAGES=en_US
> LC_PAPER=en_US
> LC_NAME=en_US
> LC_ADDRESS=en_US
> LC_TELEPHONE=en_US
> LC_MEASUREMENT=en_US
> LC_IDENTIFICATION=en_US
> LC_ALL=
>
> dat maakte niets uit...
>
> Martijn van Oosterhout wrote:
> > On Tue, Nov 14, 2006 at 10:22:15AM +0100, Wybo Dekker wrote:
> >> Ik lig voortdurend in de clinch met mijn mysql database voorzover het
> >> gaat om opslag van utf8 teksten.
> > <snip>
> >
> >> Als ik het volgende sql=scriptje aan mysql aanbied gebeurt precies wat
> >> ik verwacht:
> >
> > Is jouw scriptje in utf-8? Als het in Latin-1 is dan is het wel te
> > verklaren. Is je xterm ook in utf-8? Of als alternatief, jou terminal
> > is wel utf-8 maar mysql dekt dat het latin-1 is.
>
> ja, zowel script (vi -> encoding = fileencoding = utf8) als xterm
> (control-button-3) zijn utf8
>
> >> Ik zie dan dus een a met accent aigue, een u met een circonflex en een 1/2
> >> Maar als ik daarna mysqldump draai komt het het er vervormd weer uit,
> >> alsof de oorspronkelijke utf8 per karakter naar latin1 vertaald is.
> >> Terwijl toch de mysqldump man page zegt dat by default utf8 gebruikt
> >> wordt:
> >
> > Is er verder in the mysqldump output iets dat zegt dat het in utf-8 is?
>
> dit is de volledige uitvoer:
>
> -- MySQL dump 10.10
> --
> -- Host: localhost Database: test
> -- ------------------------------------------------------
> -- Server version 5.0.18
MySQL 5.0.18 : "UPDATE: 1.1 is all utf-8! (To all translators)"
http://forum.joomla.org/index.php?topic=14253.30;wap2
$this->_table_prefix = $table_prefix;
//@mysql_query("SET NAMES 'utf8'", $this->_resource); // THIS IS THE LINE TO UNCOMMENT
$this->_ticker = 0;
$this->_log = array();
>
> /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
> /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
> /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
> /*!40101 SET NAMES utf8 */;
Moet je dat dan ook niet specifiek aanzetten?? :
SET NAMES utf8 ;
> /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
> /*!40103 SET TIME_ZONE='+00:00' */;
> /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
> /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS,
> FOREIGN_KEY_CHECKS=0 */;
> /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE,
> SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
> /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
>
> --
> -- Table structure for table `txt`
> --
>
> DROP TABLE IF EXISTS `txt`;
> CREATE TABLE `txt` (
> `txt` text
> ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
>
> --
> -- Dumping data for table `txt`
> --
>
>
> /*!40000 ALTER TABLE `txt` DISABLE KEYS */;
> LOCK TABLES `txt` WRITE;
> INSERT INTO `txt` VALUES ('áû½');
> UNLOCK TABLES;
> /*!40000 ALTER TABLE `txt` ENABLE KEYS */;
> /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
>
> /*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
> /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
> /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
> /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
> /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
> /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
> /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
>
>
>
> > Misschien is het dat jou terminal het niet begrijpt?
>
Robert
--
Robert M. Stockmann - RHCE
Network Engineer - UNIX/Linux Specialist
crashrecovery.org stock op stokkie.net
More information about the Linux
mailing list