кодировка - отображение символа ЕВРО и многое другое - кодировка UTF-8 - PullRequest
0 голосов
/ 12 апреля 2011

это сводит меня с ума. У меня в таблице есть столбец со всеми символами валюты, и я пытаюсь отобразить их, но безрезультатно.

моя страница установлена ​​как utf8

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Я пробовал mb_convert_encoding, utf8_encode, но, кажется, не могу s = заставить его отображаться правильно.

На данный момент у меня есть

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' ) );

, что тоже не работает.

любая помощь очень ценится.

EDIT

function get_currency_symbol( $code ) {
$con = Database::getInstance();
    $re = $con->query("SELECT * FROM `countryinfo` WHERE currency_code = '$code'");
    if( $re->num_rows == 0 ) {
        return '&pound;';   
    }
    $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();   
    }
}

Ответы [ 2 ]

3 голосов
/ 12 апреля 2011

Это может помочь преобразовать ваш документ в UTF-8 (без спецификации), используя, например, Блокнот ++.

Если вы используете базу данных для извлечения данных, выполните следующий запрос перед всеми другими запросами:

mysql_query("SET NAMES 'UTF8'");
1 голос
/ 12 апреля 2011

Используете ли вы PDO для подключения к вашей базе данных?Если да, попробуйте использовать:

PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'

В качестве опции при создании соединения.

См .: http://www.php.net/manual/de/pdo.construct.php -> $ driver_options

...