2016-11-23 82 views
0

在命令行中,sqlite會正確顯示包含在我的數據庫中的帶重音符號。 在PHP中,echo也能正確顯示我。顯示帶重音符號

但是當我從我的PHP頁面查詢時,它無法正確顯示。我找不到編碼問題。

非常感謝您的幫助。

<?php 
$db = new SQLite3('database.sqlite'); 

if(isset($_GET['search'])) { 
    $rec = htmlentities($_GET['search']); 
} else { 
    $rec = ''; 
} 

$result3 = $db->query('SELECT lastname,firstname,phone,location FROM rh WHERE name != "" AND lastname || " " || firstname || " " || location LIKE "%'.$rec.'%" ORDER BY name asc LIMIT 25'); 
?> 

HTML表單:

<form action="" method="get"> 
<input type="search" name="search" value="<?php echo $rec; ?>" /> <input type="submit" value="Search" /> 
</form> 

而另一個PHP頁面上的結果:

<?php 
echo '<h3>Results</h3>'; 
echo '<tr><th>Name</th><th>Phone</th><th>Location</th></tr>'; 
while ($row = $result3->fetchArray(SQLITE3_ASSOC)) { 
echo '<tr><td>' . $row['lastname'] . ' ' . $row['firstname'] . '</td><td>' . $row['phone'] . '</td><td>' . $row['location'] . '</td></tr>'; 
} 

$db->close(); 
?> 
+3

「尋求調試幫助的問題(」爲什麼這個代碼不工作?「)必須包含所需的行爲,特定的問題或錯誤以及在問題本身中重現問題所需的最短代碼。對其他讀者沒有用,參見:[如何創建一個最小,完整和可驗證的示例](http://stackoverflow.com/help/mcve)。「 – timclutton

回答

0

也許你需要在指定propper編碼的HTML頭如:

<html> 
    <head> 
    <meta charset="utf-8"> 
    ... 
    </head> 

和/或你需要d在輸出utf8_encode();之前對您的數據進行解碼/編碼。

+0

我剛試過,不幸的是它沒有改變任何東西。 '回聲'​​'。 $ row ['lastname']。 ''。 utf8_encode($ row ['firstname'])。 '​​'。 $ row ['phone']。 '​​'。 $ row ['location']。 '';' – mwette