php连接access数据库,编码为utf-8时输出报错,用gbk正常。
可是我现在必须要用utf-8,请问怎么办?数据库还是用access!$gets=$_GET['sid'];
$connstr="DRIVER=Microsoft Access Driver (*.mdb);
DBQ=".realpath("music.mdb");
$conn=odbc_connect($connstr,"","",SQL_CUR_USE_ODBC );
header("Content-type:text/xml");
echo '<?xml version="1.0" encoding="gbk" ?>';
echo '<veryhdmtvlist>';$sql = "select * from mtv_music where sid=$gets order by musicid";
$rs = odbc_do($conn,$sql);
echo '<pageinfo recordcount="160" pagecount="10" pagesize="16" pageindex="1"/>';
echo '<mtvlist>';while(odbc_fetch_array($rs))
{
$field_0=odbc_result($rs,"musicid");
$field_1=odbc_result($rs,"sid");
$field_2=odbc_result($rs,"musicname");
echo "<mtv mtvid='$field_0' sid='$field_1' singer='' name='$field_2' pic='' link='http://192.168.253.34:102/play.php?vid=$field_0'/>";
}
odbc_close($conn);
echo '</mtvlist>';
echo '</veryhdmtvlist>';
可是我现在必须要用utf-8,请问怎么办?数据库还是用access!$gets=$_GET['sid'];
$connstr="DRIVER=Microsoft Access Driver (*.mdb);
DBQ=".realpath("music.mdb");
$conn=odbc_connect($connstr,"","",SQL_CUR_USE_ODBC );
header("Content-type:text/xml");
echo '<?xml version="1.0" encoding="gbk" ?>';
echo '<veryhdmtvlist>';$sql = "select * from mtv_music where sid=$gets order by musicid";
$rs = odbc_do($conn,$sql);
echo '<pageinfo recordcount="160" pagecount="10" pagesize="16" pageindex="1"/>';
echo '<mtvlist>';while(odbc_fetch_array($rs))
{
$field_0=odbc_result($rs,"musicid");
$field_1=odbc_result($rs,"sid");
$field_2=odbc_result($rs,"musicname");
echo "<mtv mtvid='$field_0' sid='$field_1' singer='' name='$field_2' pic='' link='http://192.168.253.34:102/play.php?vid=$field_0'/>";
}
odbc_close($conn);
echo '</mtvlist>';
echo '</veryhdmtvlist>';
你有 echo '<?xml version="1.0" encoding="gbk" ?>';
连输出都是 gbk 的,那么 utf-8 的作用体现在那呢?
....
iconv_set_encoding("internal_encoding", "GBK"); //这是新加的
iconv_set_encoding("output_encoding", "UTF-8"); //这是新加的
ob_start("ob_iconv_handler"); //这是新加的
header("Content-type:text/xml");
echo '<?xml version="1.0" encoding="utf-8" ?>'; //这里改成 utf-8 字符集
echo '<veryhdmtvlist>';
$sql = "select * from mtv_music where sid=$gets order by musicid";
$rs = odbc_do($conn,$sql);
echo '<pageinfo recordcount="160" pagecount="10" pagesize="16" pageindex="1"/>';
echo '<mtvlist>';
while(odbc_fetch_array($rs))
{
$field_0=odbc_result($rs,"musicid");
$field_1=odbc_result($rs,"sid");
$field_2=odbc_result($rs,"musicname");
echo "<mtv mtvid='$field_0' sid='$field_1' singer='' name='$field_2' pic='' link='http://192.168.253.34:102/play.php?vid=$field_0'/>";
}
odbc_close($conn);
echo '</mtvlist>';
echo '</veryhdmtvlist>';