ID: 20166 Comment by: [EMAIL PROTECTED] Reported By: [EMAIL PROTECTED] Status: Open Bug Type: *Languages/Translation Operating System: Win2k PHP Version: 4.2.2 New Comment:
A simple output of the three versions: MSSQL accessed trough ADO COM object: title: Novela zakona o državljanstvu ne rešuje ničesar PHP Mssql extension: title: Novela zakona o dr§avljanstvu ne reçuje niźesar MYSQL (entered trough command line) String: źç§¬ć¦ string MYSQL (entered trough php form) String: čšž string Previous Comments: ------------------------------------------------------------------------ [2002-11-05 00:29:14] [EMAIL PROTECTED] Hi! To define more clearly: I have a Microsoft SQL database. In that database, there are many articles, with pictures, etc. I tried to access those articles using php, and wanted to display them. All is fine, but, instead of slovene characters čšž (which you probably don't see anyway) I get garbles (unrecognized characters). I was using mssql_* functions to retrieve the data. Then, I created a simple table in mysql, inserted a row manually (from the console) and the same thing happens. BUT, if I insert the items trough PHP the first time, than the characters are retrieved correctly. So I suspect there must be something with encoding, perhaps. To make things even more funny, when I used ADO COM object to access the MS SQL server, the strings retrieved are fine. I apologize if I posted this under the wrong category, but I could not decide whether it is a db problem or not. Feel free to move this item to another category, if you wish. System details: SQL Server: Win2k, Slovenian locale PHP system: Win2k, Apache 1.3.26 (Win32), PHP 4.2.2, mysql 3.23.52, Slovenian locale ------------------------------------------------------------------------ [2002-10-30 07:05:53] [EMAIL PROTECTED] Not enough information was provided for us to be able to handle this bug. Please re-read the instructions at http://bugs.php.net/how-to-report.php If you can provide more information, feel free to add it to this bug and change the status back to "Open". Thank you for your interest in PHP. ------------------------------------------------------------------------ [2002-10-30 02:45:23] [EMAIL PROTECTED] The problem is with Microsoft SQL Server 2000 and with MySQL version Ver 11.18 Distrib 3.23.52, for Win95/Win98 (i32). I have a database with slovenian characters in the fields and I am not able to display them properly with php extension modules. I can display them propery using COM ADO objects. I've included a simple script, that shows what I am trying to do. The ADO portion of the script produces the desired result. The characters are entered using windows-1250 codepage. The script: <PRE><? header("Content-Type", "text/html; charset=Windows-1250"); ?> <html><head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1250"> </head> <body> <? $conn = new COM("ADODB.Connection") or die("Cannot start ADO"); $conn->Open("PROVIDER=MSDASQL;DRIVER={SQL SERVER}; Server=SRRDEV2;Database=portal;UID=sa;PWD=srrdev2;"); // SQL statement to build recordset. $rs = $conn->Execute("SELECT * FROM TblInfo_News where IID = 3034326"); while (!$rs->EOF) { $fv = $rs->Fields("title"); echo "title: ".$fv->value."<br>\n"; $rs->MoveNext(); } $rs->Close(); ?> PHP Mssql extension:<br> <? $link = mssql_connect("srrdev2.mobitel.si", "sa", "srrdev2"); if($link) { if(mssql_select_db("portal", $link)) { $query = "SELECT * FROM TblInfo_News where IID = 3034326"; $result = mssql_query($query, $link); if($result) { if(mssql_num_rows($result)) { while($row = mssql_fetch_array($result)) { echo "title: " . $row['title'] . "<BR>"; } } else { echo "No results! <BR>"; } mssql_free_result($result); } else { echo "Could not get the result!<BR>"; } mssql_close($link); } else { echo "Could not select db!<BR>"; } } else { echo "Could not connect!<BR>"; } // mysql echo "MYSQL<BR>"; $link = mysql_connect("valencicm.mobitel.si", "root", "root") or die("Could not connect"); mysql_select_db("test"); $query = "SELECT * FROM tbl1"; $result = mysql_query($query); if($result) { $row = mysql_fetch_array($result); if($row) { echo "String: " . $row['fld1']; } mysql_free_result($result); } mysql_close($link); ?> </body></PRE> ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=20166&edit=1