http://www.webmasterworld.com Welcome to WebmasterWorld Guest from 38.103.63.17
register, login, search, glossary, subscribe, help, library, PubCon, announcements , recent posts, unanswered posts
Subscribe to WebmasterWorld
Home / Forums Index / The Webmaster World / PHP Server Side Scripting
Forum Library : Charter : Moderators: coopster & dreamcatcher & eelixduppy & jatar k

PHP Server Side Scripting

  
PhpMyAdmin - problem with charset
moving data from server1 to server2
ppenza


#:1271848
 5:25 pm on July 16, 2005 (utc 0)

Hello

I have problem with charset in my Mysql database.

server 1(localhost):
Mysql version 5 with php5
MySQL charset is UTF-8 Unicode (utf8)
MySQL connection collation - latin2_general_ci

server 2:
Mysql version 4.1.8 php 4.3.10
MySQL charset is UTF-8 Unicode (utf8)
MySQL connection collation - latin2_general_ci

As you can see both servers have same charset configuration, so here can't be any problems.

When i'm trying to dump data from one of the table from my db ( server 2 -> server1) in result mysql gives me strange symbol. For example "£(from polish alphabet) replaced by?".

I'm from Poland so i'm trying to use ISO-8859-2 charset style.

In my PhpMyAdmin configuration file i have:

/* From config.default.php */
$cfg['DefaultCharset'] = 'iso-8859-2';

My apache 2.0 get on well with words like £,¹,¿,Ÿ...

If you can give me some advice(s) please reply for this post.

Best regards
Peter

Anyango


#:1271849
 7:14 pm on July 16, 2005 (utc 0)

Might appear bad suggestion but

have you tried to do vice versa operation?

tried to copy tables from server2> server1 , if server1> server2 is giving error..

That might yeild something.

ergophobe


#:1271850
 7:58 pm on July 16, 2005 (utc 0)

This would work okay with ISO-8859-1 and UTF-8 because UTF-8 is a superset of ISO-8859-1. In other words, any characters that are part of the ISO-8859-1 charset can be transferred from UTF-8 to ISO-8859-1 without conversion. Same bits.

For any other charset, this will only be true for those characters that are the same as ISO-8859-1. Otherwise, to go from UTF-8 to ISO-8859-* you need to do some sort of conversion. Better yet, try using UTF-8 from start to finish.

ppenza


#:1271851
 8:08 pm on July 16, 2005 (utc 0)

hello
Thanks for answer me.

I wants to import data (over 1000 records) from server2 to my localhost mysql db(witch is empty, so i can't import vice-versa).

But while i was trying to do (server2 -> server1) i observed that mysql in server1 changed one of my MySQL connection collation - latin2_general_ci to latin1_swedish_ci. I have no idea why. As i already said my server2 have also MySQL connection collation - latin2_general_ci.


CREATE TABLE `kid_prod` (
`id_prod` int(11) NOT NULL auto_increment,
`id_head` int(11) NOT NULL default '0',
`id_s_kat` int(11) NOT NULL default '0',
`id_parent` int(11) NOT NULL default '0',
`title_prod` text NOT NULL,
`desc_prod` text NOT NULL,
`popular_prod` int(11) NOT NULL default '0',
`status_prod` int(11) NOT NULL default '0',
PRIMARY KEY (`id_prod`),
FULLTEXT KEY `title_prod` (`title_prod`),
FULLTEXT KEY `desc_prod` (`desc_prod`)

) TYPE=MyISAM AUTO_INCREMENT=684 ;

Maybe i need to put somethings after "TYPE=MyISAM AUTO_INCREMENT=684 "..?

Best regards
Peter

ergophobe


#:1271852
 8:20 pm on July 16, 2005 (utc 0)

BTW - Welcome to WebmasterWorld Peter. I didn't notice you were new at first.

You would specify a charset for a table like this

CREATE TABLE `table1` (
#stuff
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

(obviously changing latin1 to whatever you need).

I had some strange issue with that when changing MySQL versions - tables carried over default charsets that didn't match the desired charset and it created some problems.

ppenza


#:1271853
 8:29 pm on July 16, 2005 (utc 0)

thanks for greeting and direction:) i will try your advice, and i will inform you about progress.

Best regards
Peter

ppenza


#:1271854
 6:14 pm on July 17, 2005 (utc 0)

hello again:)


CREATE TABLE `table1` (
#stuff
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

and no more strange symbols:) thanks alot for advice!

Best regards
Peter

ergophobe


#:1271855
 7:12 pm on July 17, 2005 (utc 0)

I'm glad it's sorted.

It's sort of annoying, but I suppose I might want table-level control of that sort of thing, but thus far it's mostly been an inconvenience for me as it was for you!

ppenza


#:1271856
 9:45 pm on July 17, 2005 (utc 0)

Hello:)

According to my unbound problem. I want to add, that i have to put this code at the beginning in my all files


mysql_query("set names latin2;");

not like this:


mysql_query("set names utf-8;");

becouse second option doesn't work:)

Maybe it will be useful for somebody:)

Best regards
Peter

 

Home / Forums Index / The Webmaster World / PHP Server Side Scripting
All trademarks and copyrights held by respective owners. Member comments are owned by the poster.
Terms of Service ¦ Privacy Policy ¦ Report Problem ¦ About
WebmasterWorld ® and PubCon ® are a Registered Trademarks of WebmasterWorld Inc.
© WebmasterWorld Inc. / SearchEngineWorld 1996-2008 all rights reserved