[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