文字化けが解決できません。お願いします
文字化けが解決できません
使用データベースはSQLServer2008です
対象カラムはcharです
データベースの照合順序はJapanese_CI_ASです
ブラウザのエンコードをUTF-8にするとprint_r($row);の部分は文字化けせずに表示
されますprint("砂糖");は文字化けします
ブラウザの標準文字コード??SJISだとprint_r($row);文字化けします
print("砂糖");は文字化けしません
ということはSQLServerのデータの文字コードがUTF-8ということなのでしょうか
SJISだと思うのですが。
そこで、SQLServerがUTF-8だと仮定してprint_r(mb_convert_encoding($row, "SJIS","UTF-8"));
というプログラムを書いたのですが結果は同じでブラウザのエンコードをSJISにすると
文字化けしていまいます
どうすればブラウザのエンコードがSJISで文字化けしないようになるのでしょうか
教えてください。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift-SJIS">
<title>test</title>
</head>
<body>
<?php
try{
$dsn ='sqlsrv:server=.\sqlexpress;database=sample';
$dbname = "sample";
$user = "sa";
$password ="manager";
//$dbh = new PDO("mssql:host=.\\SQLEXPRESS;dbname=sample",$user,$password);
$dbh = new PDO($dsn,$user,$password);
$stmt = $dbh->prepare("select * from shohin");
$stmt->execute();
while($row = $stmt->fetch()){
//print_r($row);
//print_r(mb_convert_encoding($row, "SJIS","UTF-8"));
print_r($row);
}
unset($dbh);
unset($stmt);
// foreach($dbh -> query($sql) as $row)
// print($row["id"]);
// print($row["name"]);
// echo "接続できました";
// }
// $dbh = null;
print("砂糖");
}catch(PDOException $e){
print("Failed to get DB handle:aaakkka".$e->getMessage()."\n");
phpinfo();
exit();
}
?>
</body>
</html>
補足
質問の仕方が十分でなくすみません。 ブラウザから表示すると文字化けします。 これを保存すればこのままになりますが、いきなりpdfドライバで印刷すると正常になります。