2013-10-12 43 views
0

我有以下MySQL連接:SQL數據字符集/ charactter集,集名稱不工作

$dbLink = mysql_connect('127.0.0.1', 'root', ''); 
mysql_set_charset('utf8', $dbLink); 
mysql_select_db('test', $dbLink); 
mysql_set_charset('utf-8'); 

它工作正常1周前,卻突然它沒有顯示的UTF-8或阿拉伯語或Unicode存儲在數據庫中的內容。但現在即使在數據庫中的字符已被改變,如سید احمد Ø´Ûید Ú©ÛŒ صحیح和顯示在PHP中一樣。在一切都完美之前。內容正確顯示。

即使現在,當我在數據庫中創建新條目的顯示正常,但出事了與老項目的任何幫助,請.......

我曾嘗試集名稱,mysql_set_charset & <meta http-equiv="Content-Type" content="text/html; charset=utf-8">但什麼都沒發生。請幫忙,否則我的網站將被吊死......

回答

0

使用MYSQLi,因爲MYSQL現在已被棄用。

要設置的字符集UTF-8使用mysqli_set_charset()這樣的:

$dbLink = mysqli_connect('127.0.0.1', 'root', ''); 
mysqli_set_charset($dbLink , 'utf8'); 
mysqli_select_db($dbLink, 'test'); 

如果由於某種原因仍然顯示錯誤的字符,添加到您的文件的開頭:

// Tell PHP that we're using UTF-8 strings until the end of the script 
mb_internal_encoding('UTF-8'); 

// Tell PHP that we'll be outputting UTF-8 to the browser 
mb_http_output('UTF-8'); 

UPDATE

從數據庫中選擇一些內容並使用輸出值,看看它是否顯示了賴特的字符集:

<?php 

    $dbLink = mysqli_connect('127.0.0.1', 'root', ''); 
    mysqli_set_charset($dbLink , 'utf8'); 
    mysqli_select_db($dbLink, 'test'); 

    function get_table_contents(){ 
     global $dbLink; 
     $contents = array(); 

     $query = "SELECT * FROM ||YOUR TABLE HERE||"; 
     $result = mysqli_query($connection, $query); 

     while($content = mysqli_fetch_assoc($result)){ 
      $contents[] = $content; 
     } 
     return $contents; 
    } 

    $data = get_table_contents(); 

?> 
<html> 
    <head></head> 
    <body> 
     <?php echo iconv(mb_detect_encoding($data[0]['||YOUR COLUMN||'], "UTF-8,ISO-8859-1"), "UTF-8", $data[0]['||YOUR COLUMN||']); ?> 
    </body> 
</html> 
+0

什麼都沒有發生......它同樣 – usman610

+0

@ usman610更新了答案 – CIRCLE

+0

當我使用的mysqli和你上面給出的相同的查詢。它給了我這個信息....沒有這樣的文件或目錄 它不選擇或顯示任何東西 – usman610