i've set the meta and check mysql appears to be on utf 8 already, what seems to be the issue here?
HTML
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
PHP DB connection
$DB_NAME = 'ssl';
$DB_HOST = 'localhost';
$DB_USER = 'dbuser';
$DB_PASS = 'dbpass';
$mysqli = new mysqli($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME);
// $mysqli->character_set_name();
mysqli_set_charset($mysqli,"utf8");
if (mysqli_connect_errno())
{
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
Querying for output
$query = $mysqli->query("select {$translate_to} as lang from locale_cn where {$translate_from} = '$phrase' ");
$row = mysqli_fetch_array($query);
Display
<h1><?php echo translate("In-Kind Donation"); ?></h1>
tried setting header('Content-Type: text/html; charset=UTF-8') as well but the result is still the same
Edit: add in translate function info
function translate($phrase) {
if(!isset($_SESSION))
{
session_start();
}
require 'db/mysql.php';
$_GET['lang'] = $_SESSION['lang'];
$lang_session = $_GET["lang"];
if($lang_session == 'CN') {
$translate_from = 'EN';
$translate_to = 'CN';
}
else {
$translate_from = 'CN';
$translate_to = "EN";
}
$query = $mysqli->query("select {$translate_to} as lang from locale_cn where {$translate_from} = '$phrase' ");
$row = mysqli_fetch_array($query);
if(isset($row['lang']) && $row['lang'] !== ""){
return $row['lang'];
}
else{
return $phrase;
}
}