UTF-8 and German characters?
Solution 1
I was using this code to get title:
$title = mysql_real_escape_string(htmlentities($_POST['title']));
I just override that to
$title = $_POST['title'];
Solution 2
At first, make sure, that you have UTF-8 characters in your database.
After that, try using SET NAMES 'UTF8'
after connecting to MySQL:
$con=mysqli_connect("host", "user", "pw", "db");
if (!$con)
{
die('Failed to connect to mySQL: ' .mysqli_connect_errno());
}
mysqli_query($con, "SET NAMES 'UTF8'") or die("ERROR: ". mysqli_error($con));
As the manual says:
SET NAMES indicates what character set the client will use to send SQL statements to the server... It also specifies the character set that the server should use for sending results back to the client.
user1814358
Updated on June 18, 2022Comments
-
user1814358 almost 2 years
I have problem with German characters on my web site,
in html/php part of website i have this code to set utf-8:
<meta charset="utf-8">
in mysql, i have this code to set utf-8
SET CHARSET 'utf8';
Here is some word on German:
Gemäß
Here is how that word looks in mysql table:
Gemäß
Here is how that word is shown on the site:
Gemäß
What is a problem? Thanks.
-
Jonast92 almost 11 yearsUsing mysql_* is deprecated and mysql_real_escape_string isn't going to keep your database safe. FYI.
-
martinstoeckli almost 11 yearsNow you have indeed an error, while the first statement only scrambled your output, you now made it dangerous. Always escape your data for the appropriate output and only for this output. To display data on an HTML page you should use
htmlspecialchars()
, to insert a string in an SQL statement usemysqli_real_escape_string()
or parametrized queries. -
Gromski almost 11 years@Jonast92
mysql_real_escape_string
is perfectly adequate to prevent SQL injection if applied properly. The problem is that many people don't apply it properly. -
Jonast92 almost 11 yearsSure it could be helpful but applying it ONLY won't do much, for example it won't safe you from logical sql injections. You might as-well just skip it, but it doesn't hurt to apply it if all other safeguards are used as-well.
-
Gromski almost 11 years@Jonast92 Say what now? I'd love for you to clarify your point here: stackoverflow.com/q/12703420/476