我的页面设置为utf8
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
我已经尝试了mb_convert_encoding,utf8_encode但似乎无法正确显示它。
目前我有
function isUTF8($str) {
if ($str === mb_convert_encoding(mb_convert_encoding($str, "UTF-32", "UTF-8"), "UTF-8", "UTF-32")) {
return true;
} else {
return false;
}
}
echo ( isUTF8( $ar['currrency_symbol'] ) ? $ar['currrency_symbol'] : mb_convert_encoding( $ar['currrency_symbol'], 'UTF-8' ) );
也不起作用。
非常感谢任何帮助。
修改
function get_currency_symbol( $code ) {
$con = Database::getInstance();
$re = $con->query("SELECT * FROM `countryinfo` WHERE currency_code = '$code'");
if( $re->num_rows == 0 ) {
return '£';
}
$ar = $re->fetch_assoc();
echo ( isUTF8( $ar['currrency_symbol'] ) ? $ar['currrency_symbol'] : mb_convert_encoding( $ar['currrency_symbol'], 'UTF-8' ) );
//return iconv( mb_detect_encoding( $ar['currrency_symbol'] ), 'UTF-8//TRANSLIT', $ar['currrency_symbol'] );
}
///
abstract class Database {
private static $instance = NULL;
private function __clone() {}
public function __construct() {}
public static function getInstance() {
if ( NULL === self::$instance ) {
self::$instance = new MySQLi( DBSERVER, DBUSER, DBPASS, DBNAME );
}
self::$instance->query("SET NAMES 'utf8'");
return self::$instance;
}
public function kill_con() {
self::$instance->close();
}
}
答案 0 :(得分:3)
使用例如Notepad ++将文档转换为UTF-8(无BOM)可能会有所帮助。
如果您使用数据库来获取数据,请在所有其他查询之前执行以下查询:
mysql_query("SET NAMES 'UTF8'");
答案 1 :(得分:1)
您是否使用PDO进行数据库连接?如果是,请尝试使用:
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'
创建连接时的选项。
请参阅:http://www.php.net/manual/de/pdo.construct.php - &gt; $ driver_options