2017-06-03 123 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讨论“黑钻石”的原因和治疗方法。