The issue was in PGSQLKit.

-(NSString *)sqlEncodeString:(NSString *)toEncode
{

        //size_t result;
        int     error;
        char *sqlEncodeCharArray = malloc(1 + ([toEncode length] * 2)); // per 
the libpq doc.
        const char *sqlCharArrayToEncode = [toEncode 
cStringUsingEncoding:defaultEncoding];
        size_t length = strlen(sqlCharArrayToEncode);
        
        PQescapeStringConn ((PGconn *)pgconn, sqlEncodeCharArray,
                        (const char *)[toEncode 
cStringUsingEncoding:defaultEncoding], 
                        length, &error);
        
//This is bad
//      NSString *encodedString = [[[NSString alloc] 
initWithFormat:@"%s",sqlEncodeCharArray] //autorelease];
//Instead use
        NSString *encodedString = [NSString 
stringWithCString:sqlEncodeCharArray encoding:defaultEncoding];     

        free(sqlEncodeCharArray);
        
        return encodedString;   
        
}




Am 22.03.2012 um 09:09 schrieb Alexander Reichstadt:

> Hi,
> 
> 
> for a couple of reasons we migrated our project from mysql to postgres using 
> PGSQLKit.
> 
> But we are experiencing problems storing UTF8 data. So far we checked the 
> database to be able to store UTF8. When using pgPHPAdmin to store values with 
> German Umlaute it works. When using PGSQLKit chars get garbled.
> 
> The following code stores the values:
> 
> 
> const char *cString = [sql cStringUsingEncoding:NSUTF8StringEncoding];
>       if (cString == NULL) 
>       { 
>               self.errorDescription = [NSString stringWithFormat:@"ERROR: 
> execCommand could not be losslessly converted to c string: %@", sql];
>        [self appendSQLLog:[NSString stringWithFormat:@"%@\n", 
> self.errorDescription]];
>        return NO;
>    }    
>       res = PQexec(pgconn, cString);
> 
> Both sides seem correct, server as well as client, so I am not sure what the 
> issue might be.
> 
> Any ideas?
> 
> Thanks
> Alex
> _______________________________________________
> 
> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
> 
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
> 
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/cocoa-dev/lxr%40mac.com
> 
> This email sent to l...@mac.com

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to