ID: 27416 Updated by: [EMAIL PROTECTED] Reported By: mooseyproductions at hotmail dot com -Status: Open +Status: Bogus Bug Type: MSSQL related Operating System: Windows 2000/XP PHP Version: 4.3.4 New Comment:
You need to use the same codepage to insert and fetch the data. When you insert data as binary values there is no codepage involved in the process but when you select the data it uses the OEM to ANSI convertion defined by the client library. Previous Comments: ------------------------------------------------------------------------ [2004-02-27 10:22:38] mooseyproductions at hotmail dot com I have tried connecting to the SQL Server database using ODBC and it retrieves the data perfectly, as expected. I think I will use the ODBC functions for the meanwhile, until this bug is sorted. ------------------------------------------------------------------------ [2004-02-27 09:03:03] mooseyproductions at hotmail dot com Description: ------------ When reading data from a SQL Server database, certain ASCII characters are incorrectly retrieved. Entering accented characters into the database works fine, however reading them from the database gives unexpected results. ASCII chars 33 - 255 entered into database: !"#$%&'()*+,-./0123456789:;<=>[EMAIL PROTECTED]|}~ (This appears fine when looking at the database using MS Enterprise Manager) Result from read query: !"#$%&'()*+,-./0123456789:;<=>[EMAIL PROTECTED]|}~__'".^%So_zYϾǎԐѥ噞 ƄФ It appears that characters after ASCII #127 are incorrectly returned from the database. Using SQL Server 7.0 (ISO 8859-1 charset) Reproduce code: --------------- $string = ''; for ($i = 33; $i <= 255; $i++) { $string .= chr($i); } $db->query("UPDATE Test SET charset = 0x".bin2hex($string)." WHERE rowID = 1"); $result = $db->query("SELECT charset FROM Test WHERE rowID = 1"); $row = $db->getAssoc($result); echo $row['charset']; Expected result: ---------------- I expected to see what I had previously entered into the database. All text that contains accents is wrongly displayed. Expected: !"#$%&'()*+,-./0123456789:;<=>[EMAIL PROTECTED]|}~ Actual result: -------------- Actual: !"#$%&'()*+,-./0123456789:;<=>[EMAIL PROTECTED]|}~__'".^%So_zYϾǎԐѥ噞 ƄФ ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=27416&edit=1