我使用PHP从MySQL数据库中获取一些具有UTF8归类(utf8_unicode_ci
)的数据。我正在使用这段代码:
function advancedDatabaseSearch($pattern, $lpref) {
$link = mysql_connect(DB_URL, DB_USER, DB_PWD);
if (!$link) {
return 'Could not connect: ' . mysql_error();
}
$esc_value = mysql_real_escape_string($pattern);
$esc_lpref = mysql_real_escape_string($lpref);
mysql_select_db(DB_NAME, $link);
$query = "SELECT RAWVALUE FROM rawvalueitem "
."WHERE RAWVALUE LIKE '".$esc_value."' "
."AND LANGUAGE = '".$esc_lpref."' "
."ORDER BY RAWVALUE ASC";
$result = mysql_query($query);
$return = "";
while($row = mysql_fetch_array($result)) {
$return = $return.$row['RAWVALUE']." ";
}
mysql_close($link);
return $return;
}
然后从Ajax调用的php:
$result = advancedDatabaseSearch($tttmp, $lpref);
echo $result;
return;
然而,当我在文本区域显示结果时,重音符号无法正确显示:
另一方面,当我从文件中获取UT8数据时:
if ( $file_loc != NULL ) {
if ( file_exists($file_loc) ) {
$handle = fopen($file_loc, "rb");
$contents = fread($handle, filesize($file_loc));
fclose($handle);
$result = $contents;
}
}
echo $result;
return;
我没有得到这个问题!使用PHP从MySql中获取数据时如何解决?
答案 0 :(得分:4)
您是否将UTF-8设置为数据库连接的默认字符集?
mysql_set_charset('utf8', $link);
http://www.php.net/manual/en/function.mysql-set-charset.php
此外,您的网页是否包含具有正确字符集的<meta>
标记?
答案 1 :(得分:0)
这就像你现在的工作一样!
<?php
$config_db_server='localhost';
$config_db_server_username='root';
$config_db_server_password='';
$config_db_database='test';
$config_db_charset='utf8';
$config_db_collation='utf8_general_ci';
$config_table_prefix='class_';
$config_live_site='http://localhost';
$config_abs_path='C:\xampp\htdocs';
$config_debug=0;
$dbLink = mysql_connect($config_db_server, $config_db_server_username, $config_db_server_password);
mysql_query("SET character_set_results=utf8", $dbLink);
mb_internal_encoding('utf8');
mysql_query("set names 'utf8'",$dbLink);
&GT;
在这里更改数据库连接:($ dbLink = mysql_connect($ config_db_server,$ config_db_server_username,$ config_db_server_password);)