Hi, I'm currenly working on unicode support for the DBD::MaxDB driver. Now I have the problem to find out the encoding of a statement passed thru dbd_st_prepare(...) method. Because the statement is passed as char* value I cannot check if the UTF-8 flag was set for the SV value or not. But depending on this flag the char buffer must be interpreted as 8-bit Ascii or as UTF-8 (includes 7-bit Ascii only).
#example #depending on the UTF-8 flag the byte representation for "ü" differs my $username1 = "düd"; #is a 8 bit Ascii value - hex 64FC64 my $username" = eval q{"\x{8f6f}ü" }; utf-8 value - hex E8BDAFC3BC I think, the solution would be to add a new prepare method dbd_st_prepare_sv to DBI that passes the SV value of the statement thru the DBD driver instead of a char* value. I found a similar discussion on perl.dbi.users, but without a clear answer if the DBI change would come or not. http://www.issociate.de/board/post/243028/DBD::Oracle_-_prepare()_and_the_utf-8_flag..html I have the same problem with dbd_maxdb_db_login6 where username and password are passed as char* values instead of a SV value. Kind regards, Marco Paskamp MaxDB, SAP Labs Berlin