显示重音字符

时间:2016-11-23 09:05:11

标签: php sqlite character-encoding

在命令行中,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();
?>

1 个答案:

答案 0 :(得分:0)

也许您需要在HTML-Head中指定propper编码,例如:

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

和/或您需要在输出utf8_encode();之前对数据进行解码/编码。