بمب منطقی
یک شنبه 22 تیر 1393, 17:05 عصر
سلام دوستان.
من یک odbc dsn رو برای اتصال به sql server2008R2 ایجاد کردم.collation دیتابیسم Arabic_ci_as است.ودر php به طریق ذیل عمل کردم:
$conn=odbc_connect($dsnName,$un,$pw,SQL_CUR_USE_OD BC);
$stmt=odbc_prepare($conn, '{CALL myProc(?,?)}');
if(odbc_execute($stmt, array($param1,$param2)))
while(odbc_fetch_row($stmt))
{
$record=array();
$record['col1']=odbc_result($stmt,"col1");
$record['col2']=odbc_result($stmt,"col2");
$value[]=$record;
}
odbc_free_result($stmt);
odbc_close($conn);
echo json_encode($value);
که در اینصورت چون مقادیر col1 وcol2 فارسی هستن رو null نشون میده و اگر بجای خط 7 و 8 بنویسم:
$record['col1']=utf8_encode(odbc_result($stmt,"col1"));
$record['col2']=utf8_encode(odbc_result($stmt,"col2"));
ایندفعه هر کراکتر در فیلد رو چیزی شبیه به u233543\ نشون میده. encoding فایل php هم utf-8 with bom است
با تشکر از راهنماییهای شما عزیزان.
من یک odbc dsn رو برای اتصال به sql server2008R2 ایجاد کردم.collation دیتابیسم Arabic_ci_as است.ودر php به طریق ذیل عمل کردم:
$conn=odbc_connect($dsnName,$un,$pw,SQL_CUR_USE_OD BC);
$stmt=odbc_prepare($conn, '{CALL myProc(?,?)}');
if(odbc_execute($stmt, array($param1,$param2)))
while(odbc_fetch_row($stmt))
{
$record=array();
$record['col1']=odbc_result($stmt,"col1");
$record['col2']=odbc_result($stmt,"col2");
$value[]=$record;
}
odbc_free_result($stmt);
odbc_close($conn);
echo json_encode($value);
که در اینصورت چون مقادیر col1 وcol2 فارسی هستن رو null نشون میده و اگر بجای خط 7 و 8 بنویسم:
$record['col1']=utf8_encode(odbc_result($stmt,"col1"));
$record['col2']=utf8_encode(odbc_result($stmt,"col2"));
ایندفعه هر کراکتر در فیلد رو چیزی شبیه به u233543\ نشون میده. encoding فایل php هم utf-8 with bom است
با تشکر از راهنماییهای شما عزیزان.