php-firebird icon indicating copy to clipboard operation
php-firebird copied to clipboard

char(1) is padded with spaces with charset UTF8

Open WarmBooter opened this issue 4 years ago • 5 comments

With a FB connection using charset UTF-8:

select cast('A' as char(1)) from rdb$database;

The result using ibase_fetch_object will be 'A ' ("A" padded with 3 spaces).

select cast('A' as varchar(1)) from rdb$database;

The result will be 'A', which is correct.

It seems that FB transfers the char(1) padded with spaces to fill the 4 bytes buffer, but for the end user, a char(1) should never return more than 1 character. IMHO, in such cases, the PHP driver should strip out any extra spaces before delivering the result to the final user in a way that the result would never has more characters than the declared field size.

WarmBooter avatar Oct 19 '21 13:10 WarmBooter

Yes, that's right. We should fix it.

MartinKoeditz avatar Oct 19 '21 14:10 MartinKoeditz