Index: ows/ows.c =================================================================== --- ows/ows.c (revisión: 326) +++ ows/ows.c (copia de trabajo) @@ -45,7 +45,7 @@ ows_error(o, OWS_ERROR_CONNECTION_FAILED, "connection to database failed", "init_OWS"); - if (PQsetClientEncoding(o->pg, o->encoding->buf)) + if (PQsetClientEncoding(o->pg, o->db_encoding->buf)) ows_error(o, OWS_ERROR_CONNECTION_FAILED, "Wrong databse encoding", "init_OWS"); } @@ -73,6 +73,7 @@ o->schema_dir = NULL; o->log_file = NULL; o->encoding = NULL; + o->db_encoding = NULL; o->log = NULL; o->layers = NULL; o->max_width = 0; @@ -136,13 +137,18 @@ fprintf(output, "\n"); } - /* Carlos Ruiz - cruizch@gmail.com - 2010-01-24 */ if (o->encoding != NULL) { fprintf(output, "encoding: "); buffer_flush(o->encoding, output); fprintf(output, "\n"); } + if (o->db_encoding != NULL) { + fprintf(output, "database encoding: "); + buffer_flush(o->db_encoding, output); + fprintf(output, "\n"); + } + if (o->metadata != NULL) { fprintf(output, "metadata: "); ows_metadata_flush(o->metadata, output); @@ -256,6 +262,9 @@ if (o->encoding != NULL) buffer_free(o->encoding); + if (o->db_encoding != NULL) + buffer_free(o->db_encoding); + free(o); o = NULL; } @@ -297,6 +306,7 @@ fprintf(stderr, "Config File Path: %s\n", o->config_file->buf); fprintf(stderr, "PostGIS dsn: %s\n", o->pg_dsn->buf); fprintf(stderr, "Encoding: %s\n", o->encoding->buf); + fprintf(stderr, "Database encoding: %s\n", o->db_encoding->buf); fprintf(stderr, "Schema dir: %s\n", o->schema_dir->buf); if (o->log_file != NULL) Index: ows/ows.h =================================================================== --- ows/ows.h (revisión: 326) +++ ows/ows.h (copia de trabajo) @@ -409,6 +409,8 @@ } request; } ows_request; +#define DEFAULT_XML_ENCODING "UTF-8" + typedef struct Ows { bool exit; PGconn * pg; @@ -417,10 +419,8 @@ buffer * online_resource; buffer * pg_dsn; buffer * log_file; - - /* Carlos Ruiz - cruizch@gmail.com - 2010-01-24 */ buffer * encoding; - + buffer * db_encoding; FILE* log; FILE* output; Index: ows/ows_config.c =================================================================== --- ows/ows_config.c (revisión: 326) +++ ows/ows_config.c (copia de trabajo) @@ -109,8 +109,15 @@ } else { o->encoding = buffer_init(); - buffer_add_str(o->encoding, "UTF-8"); + buffer_add_str(o->encoding, DEFAULT_XML_ENCODING); } + + a = xmlTextReaderGetAttribute(r, (xmlChar *) "db_encoding"); + if (a != NULL) { + o->db_encoding = buffer_init(); + buffer_add_str(o->db_encoding, (char *) a); + xmlFree(a); + } }