RE: Re: CHAR field with charset UTF8 and COLLATION UNICODE_CI_AI or UTF8 PHP is loading white spaces

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Delmar,

> -----Original Message-----
> From: Delmar Wichnieski [mailto:delmar.delmar@xxxxxxxxx]
> Sent: Tuesday, November 22, 2016 12:27 PM
> To: php-windows@xxxxxxxxxxxxx; php-db@xxxxxxxxxxxxx
> Subject:  Re: CHAR field with charset UTF8 and COLLATION
> UNICODE_CI_AI or UTF8 PHP is loading white spaces
> 
> 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.
> 
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

> 
> The driver could map the SQLVARs of SQL_TEXT to SQL_VARYING and adjust
> offsets and lengths?
> 
> Or else it has to do the manual work of identifying the charset (UTF8 = number
> 4) and get byte by byte by mounting the string disregarding the extra spaces.
> 
> 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?
> 
> 2016-10-21 10:24 GMT-02:00 Delmar Wichnieski <delmar.delmar@xxxxxxxxx>:
> 
> > 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 = "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 = UTF-8 file.html
> >     <meta charset="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!
> >
> >
> >


-- 
PHP Windows Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php





[Index of Archives]     [PHP Home]     [PHP Users]     [PHP Database Programming]     [PHP Install]     [Kernel Newbies]     [Yosemite Forum]     [PHP Books]

  Powered by Linux