2017-06-03 48 views
1

當我在php中執行SELECT查詢以便從MySQL DB獲取數據到引導表時,撇號在表格行中不能正確顯示。特別是,我得到Gr�a而不是Grúa從MySQL獲取數據到引導表時不顯示撇號

這是我從MySQL數據庫獲取數據:

<?php 
    include_once 'include/connect_db.php'; 

    $query = "SELECT * FROM myTable;"; 
    $result = ejecutar_query($query); 

    $list = array(); 
    while ($b = mysqli_fetch_array($result)) { 
    $list[] = $b; 
    } 
?> 

<td><?php echo $row['name'];?></td> 

<!--jQuery Datatable--> 
<script> 
    $(document).ready(function(){ 
       $('#myTable').dataTable({ 
       "sPaginationType":"full_numbers", 
       "aaSorting":[[0, "asc"]], 
       "bJQueryUI":true 
       }); 

       hideLoading(); 

    }); 
</script> 

我應該改變的編碼在MySQL數據庫或我應該怎麼做來解決這個問題?

+0

如果您直接在db上使用select查詢,那麼select查詢會起作用嗎? –

+0

@UmashankarDas:是的,在數據​​庫中它工作正常。 – Dinosaurius

+0

只需使用Markus Zeller的答案。它應該工作正常。理想的。 –

回答

2

在這種情況下,您需要對字符進行編碼/解碼。更改表/數據庫的字符集可能會導致數據丟失。

<td><?php echo utf8_encode($row['name']);?></td> 

如果函數utf8_encode()不起作用嘗試utf8_decode()代替。

+0

這將是正確的答案,但是,確認數據是否正確存儲在數據庫中很重要。否則,以上都不會起作用。 –

+1

它爲我工作('utf8_encode')。非常感謝。 – Dinosaurius

+0

爲了使它更加正確,你甚至可以像這樣包裝它:'<?php echo html_entities(utf8_encode($ row ['name']));?>'。這隻取決於數據。 –

0

請勿使用任何編碼/解碼功能;這只是解決了這個問題。

查看here討論「黑鑽石」的原因和治療方法。