How to keep character encoding with database queries.
Posted
by JasonS
on Stack Overflow
See other posts from Stack Overflow
or by JasonS
Published on 2010-04-13T10:09:57Z
Indexed on
2010/04/13
10:12 UTC
Read the original article
Hit count: 510
Hi,
I am doing the following.
1) I am exporting a database and saving it to a file called dump.sql. 2) The file is then transferred to a different server via PHP ftp. 3) When the file has been successfully transferred the administrator has an option to run a 'dbtransfer' script on the new host. 4) This script blows up the script and runs the queries line by line.
This works great - however there is a problem with foreign language encoding. We are using UTF-8.
Step 1 : This works fine, file is in UTF-8 Format. Step 3 : When I test the contents of the dump.sql file using mb_check_encoding(). The string comes back as UTF-8. Step 4 : This creates tables with utf8_general_ci encoding. The information is dumped in.
When I check the table after the transfer I get records like this: 'ç,Ç,ö,Ö,ü,Ü,ı,İ,ş,Ş,ğ,Ğ'. I don't understand how a UTF-8 string can lose its encoding when it goes into the database. Am I missing a step? Do I need to run some sort of function to ensure the string is parsed as UTF-8?
Once the system is installed I can save foreign language queries. It is just the transfer that is messing up.
Any ideas?
© Stack Overflow or respective owner