Я пытаюсь получить данные из таблицы, чья сортировка - «utf8_general_ci», а столбец под названием «имя_приложения» имеет строку, подобную: Plants vs. Zombies ™ 2, 포코 팡 для Kakao, 네이버 - Naver, μTorrent® - Torrent App. Когда я пытался запросить таблицу, как показано ниже:Кодировка символов Юникода для вывода MySQL
<?php
$con = mysql_connect('localhost', 'root', 'root') or die('Error connecting to server');
mysql_select_db('googleappanalysis', $con);
if(isset($_POST['appType']))
{
$appType = $_POST['appType'];
$month = $_POST['month'];
$year = $_POST['year'];
}
$monthYear = $month.$year;
mysql_query("SET NAMES utf8")
if($appType == "Apps with IA"){
$sql="SELECT app_name FROM MonthlyAppState WHERE is86 = 1 AND is86 IS NOT NULL AND monthYear = '".$monthYear."'";
$result=mysql_query($sql);
}elseif($appType == "Apps with no IA"){
$sql="SELECT app_name FROM MonthlyAppState WHERE is86 = 0 AND is86 IS NOT NULL AND monthYear = '".$monthYear."'";
$result=mysql_query($sql);
}
$table = array();
$table['cols'] = array(
array('label' => $appType, 'type' => 'string')
);
$rows = array();
$appendingString = "";
while($r = mysql_fetch_assoc($result)){
$temp = array();
$temp[] = array('v' => (string)$r['app_name']);
$rows[] = array('c' => $temp);
$appendingString = $appendingString."/".$r['app_name'];
}
$myFile = "logfile.txt";
$fh = fopen($myFile, 'w') or die("can't open file");
fwrite($fh, $appendingString);
fclose($fh);
$table['rows'] = $rows;
// encode the table as JSON
$jsonTable = json_encode($table);
// set up header; first two prevent IE from caching queries
header('Cache-Control: no-cache, must-revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Content-type: application/json');
echo $jsonTable;
?>
jsontable кидает нулевые значения, а для файла «logfile.txt'the Юникода символов преобразуется в„???“ как видно here
Вы действительно должны избегать использования MySQL и вместо того, чтобы использовать что-то вроде MySQLi или PDO. Это делает защиту от SQL-инъекции тривиальной, тогда как обычный класс mysql бремя дезинфекции ваших запросов всегда зависит от вас, а не от ваших технологий. – echochamber
Каков набор символов (не сортировка) столбца, который вы выбираете? – zerkms
его utf8 для app_name –