我无法正确输入(通过php)土耳其字符到PhpMyadmin。我将所有内容(浏览器编码,html字符集,数据库排序连接)设置为UTF-8 ..
和我的查询
<?php
ob_start();
session_start();
mysql_connect('localhost', 'root', 'pass');
mysql_select_db('myDatabase');
mysql_query("SET NAMES 'utf8' COLLATE 'utf8_turkish_ci'");
?>
P.S:当我更改数据库上的文本并正确写入时,我可以在浏览器上正常显示它们
所以问题是通过php正确地将文本输入数据库..
我用msqli找出问题所在:
<?php
ob_start();
session_start();
$link = mysqli_connect('localhost', 'root', 'pass');
mysql_select_db('myDatabase');
mysql_query("SET NAMES 'utf8' COLLATE 'utf8_turkish_ci'");
/* check connection */
if (!$link) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
/* Print current character set */
$charset = mysqli_character_set_name($link);
printf ("Current character set is %s\n",$charset);
/* close connection */
mysqli_close($link);
?>
输出(数据库连接的默认字符集)是&#34;当前字符集是latin1&#34;
1-我无法找到默认&#39; latin1&#39;在php.ini或其他地方..它来自哪里?
2-如何将其更改为utf8_turkish_ci?
提前谢谢!
答案 0 :(得分:1)
mysql
和mysqli
库创建单独的mysql会话,以验证mysql
会话中的字符集设置,您可以执行以下操作:
mysql_select_db('myDatabase');
mysql_query("SET NAMES 'utf8' COLLATE 'utf8_turkish_ci'");
$rs = mysql_query("show variables like 'char%'");
$row = mysql_fetch_assoc($rs);
print_r($row);