EOB
EOB

Reputation: 3085

Umlauts are displayed as ? in my MySQL database?

this is my local scenario:

I have an application which reads some CSV files and writers the content to my local MYSQL database. The content contains umlauts, such as "ß" or "Ä". Locally everything works fine, the umlauts are written to the db and also displayed correclty inside the app which reads the db.

Now I moved this scenario to the amazon cloud and suddenly "ß" becomes "?" in the db. I checked what the program reads from the CSV files and there it is still a "ß". So it must be the writing to the database I guess, question is, why was this working locally but not on my cloud server? Is this a db problem, or a PHP problem?

Thanks! :)

Upvotes: 0

Views: 1437

Answers (4)

KarlosFontana
KarlosFontana

Reputation: 188

it all depends on how you upload the CSV file.
Before writing the data to the MySQL server, this code might help:

$Notes = $_POST['Notes']; // or contents of the CSV file- but split the data first according to newline etc.  

$charset = mysqli_character_set_name($DBConnect);  
printf ("To check your character set but not necessary %s\n",$charset);  

$Notes = str_replace('"', '"', $Notes);  //double quotes for mailto: emails.  
$von = array("ä","ö","ü","ß","Ä","Ö","Ü"," ","é");  //to correct double whitepaces as well
$zu  = array("ä","ö","ü","ß","Ä","Ö","Ü"," ","é");  
$Notes = str_replace($von, $zu, $Notes);  
echo " Notes:".$Notes."<br>" ;  
$Notes = mysqli_real_escape_string($link, $Notes); //for mysqli DB connection.

echo " Notes:".$Notes ;  

Upvotes: 0

danyo
danyo

Reputation: 5846

you can use:

iconv("UTF-8", "ISO-8859-1", $stringhere);

this will convert the string for you

Upvotes: 0

Doa
Doa

Reputation: 2015

You need to have your database UTF-8 encoded.

Here is an excellent overview article that explains how encoding works in MySQL, and multiple ways to fix it:

http://www.bluebox.net/news/2009/07/mysql_encoding/

Upvotes: 1

Peon
Peon

Reputation: 8020

Did you check the encoding on both databases? Most likely there might be the problem.

Upvotes: 2

Related Questions