在命令行中,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();
?>
答案 0 :(得分:0)
也许您需要在HTML-Head中指定propper编码,例如:
<html>
<head>
<meta charset="utf-8">
...
</head>
和/或您需要在输出utf8_encode();
之前对数据进行解码/编码。