Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP ODBC无法为MS Access打印中文,但COM可以_Php_Codeigniter_Ms Access_Utf 8_Odbc - Fatal编程技术网

PHP ODBC无法为MS Access打印中文,但COM可以

PHP ODBC无法为MS Access打印中文,但COM可以,php,codeigniter,ms-access,utf-8,odbc,Php,Codeigniter,Ms Access,Utf 8,Odbc,我正在尝试使用连接到MS Access的ODBC打印中文。它不适用于ODBC驱动程序,但适用于ADODB,我需要使用ODBC,因为codeigniter现有库。有什么解决办法吗?谢谢 ini_set('default_charset', 'UTF-8'); header('Content-Type: text/html; charset=utf-8'); echo '<meta http-equiv="conten

我正在尝试使用连接到MS Access的ODBC打印中文。它不适用于ODBC驱动程序,但适用于ADODB,我需要使用ODBC,因为codeigniter现有库。有什么解决办法吗?谢谢

        ini_set('default_charset', 'UTF-8');              
        header('Content-Type: text/html; charset=utf-8');
        echo '<meta http-equiv="content-type" content="text/html; charset=UTF-8" />'; 

        $conn=odbc_connect("Driver={Microsoft Access Driver (*.mdb)};CharSet=utf8;DBQ=//192.168.8.130/MainC/POS_AY.mdb",'','');
        $sql  = "SELECT Size FROM MenuSetPrice";
        $rs= odbc_exec($conn,$sql);          
        odbc_fetch_row($rs) ;
        $Size=odbc_result($rs,"Size");

        echo $Size; // THIS NOT WORKING, it print on the browser ?
         echo mb_detect_encoding($Size); // This return ASCII

        $db_connection = new COM("ADODB.Connection", NULL, CP_UTF8);
        $db_connstr = "Driver={Microsoft Access Driver (*.mdb)};DBQ=//192.168.8.130/MainC/POS_AY.mdb";

        $db_connection->open($db_connstr);
        $rs = $db_connection->execute("SELECT Size  FROM MenuSetPrice");
        $rs_fld0 = $rs->Fields(0);

        echo ($rs_fld0->value); // THIS WORKS, it print 例
        echo mb_detect_encoding($rs_fld0->value); // THIS RETURN UTF-8

        $rs->Close();
        $db_connection->Close();
更新: 添加了mb_detect_编码代码。为什么ODBC返回ASCII?是否有方法连接ODBC以返回UTF-8?

的可能副本。