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]

 



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.


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!
>
>
>

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

  Powered by Linux