RE: [PHP-WIN] Re: CHAR field with charset UTF8 and COLLATION UNICODE_CI_AI or UTF8 PHP is loading white spaces
[email protected] ("Anatol Belski") Tue, 22 Nov 2016 13:04:21 +0100
| Newsgroups | php.db,php.windows |
|---|---|
| Message-ID | <[email protected]> |
Hi Delmar, > -----Original Message----- > From: Delmar Wichnieski [mailto:[email protected]] > Sent: Tuesday, November 22, 2016 12:27 PM > To: [email protected]; [email protected] > Subject: [PHP-WIN] Re: CHAR field with charset UTF8 and COLLATION > UNICODE_CI_AI or UTF8 PHP is loading white spaces >=20 > This issue also occurs with folow PHP versions (for any collate - = UTF8) PHP > 7.0.12+ PHP 7.1.0 RC4+ Firebir 2.5.5 + and Firebird-3.0.1.32609_0_x64 = I have no > test with other versions. >=20 Please file an issue to bugs.php.net with the complete reproduce case. = Probably you could also try pdo_firebird, to check the difference. Thanks Anatol >=20 > The driver could map the SQLVARs of SQL_TEXT to SQL_VARYING and adjust > offsets and lengths? >=20 > Or else it has to do the manual work of identifying the charset (UTF8 = =3D number > 4) and get byte by byte by mounting the string disregarding the extra = spaces. >=20 > How to resolve without using trim or could there be a fix for an = upcoming > release if the drive is not able to work with CHAR fields in UTF8? >=20 > 2016-10-21 10:24 GMT-02:00 Delmar Wichnieski = <[email protected]>: >=20 > > Subject: > > CHAR field with charset UTF8 and COLLATION UNICODE_CI_AI or UTF8 PHP > > is loading white spaces Example > > 'S ' instead of 'S' > > > > Environment > > Windows 10 > > PHP 7.0.12 x64 VC14 TS > > Apache Lounge 2.4.23 x64 VC14 > > firebird 2.5.5 > > > > configuration > > php.ini > > default_charset =3D "UTF-8" > > connection to the database > > ibase_connect ( "localhost:" DB, user, pw, "UTF8". > > connection PHP script file in UTF-8 > > PHP script file with the test in UFT-8 response header > > Content-Type: text / html; charset =3D UTF-8 file.html > > <meta charset=3D"UTF-8"> > > > > Migration in Firebird 2.5.5 charset ISO8859_1 collate PT_BR to UTF8 > > and UNICODE_CI_AI (firebird 2.5.5) > > > > DDL > > > > SET SQL DIALECT 3; > > > > SET NAMES UTF8; > > > > SET CLIENTLIB 'C:\Program Files\Firebird\Firebird_2_5_5\ > > WOW64\fbclient.dll'; > > > > CREATE DATABASE 'D:\MYDB_UTF8.FDB' > > USER 'SYSDBA' PASSWORD 'A' > > PAGE_SIZE 4096 > > DEFAULT CHARACTER SET UTF8 COLLATION UNICODE_CI_AI; > > > > CREATE TABLE USUARIO ( > > CODIGO INTEGER NOT NULL, > > USUARIO VARCHAR(20) CHARACTER SET UTF8 NOT NULL COLLATE > > UNICODE_CI_AI, > > SENHA VARCHAR(10) CHARACTER SET UTF8 NOT NULL COLLATE > > UNICODE_CI_AI, > > CODCIDADE INTEGER, > > ACESSOSISTEMA CHAR(1) CHARACTER SET UTF8 COLLATE UNICODE_CI_AI, > > CPF VARCHAR(12) CHARACTER SET UTF8 COLLATE = UNICODE_CI_AI > > ); > > > > > > > > Example > > CHAR SIZE 1 > > in the database > > 'S' > > In php results > > 'S ' instead of 'S' > > vardump (char_field) > > string (4) "S " > > > > (Both ibase_query as PDO) > > > > Its a configuration problem, bug or not full support to UFT-8? > > > > Thank you very much! > > > > > >