2016-11-23 38 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

たぶん、あなたはあなたのHTML、頭などにpropperエンコーディングを指定する必要があります。

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

そして/またはあなたあなたのデータをde/encodeして、出力utf8_encode();の前に置きます。

+0

私はちょうど試みました、残念ながらそれは何も変更されません。 'echo '​​'です。 $ row ['lastname']。 ''。 utf8_encode($ row ['firstname'])。 '​​'。 $行['電話']。 '​​'。 $ row ['location']。 ''; ' – mwette

関連する問題