Oliver Wesp wrote:

Dear List,

I' struggling with queryByAttributes on an attribute field with german umlauts using java mapscript. The odd thing is that the same thing works fine with php mapscript and when I use expressions in my mapfile. I'm using a shapefile as datasource.

Here is what I do:

layer.queryByAttributes(map,"KREIS_NAME", "/Südliche Weinstraße/",
mapscriptConstants.MS_MULTIPLE);
layer.open();
System.out.println( "Result Count: " +layer.getNumResults() );
layer.close();

The result is always null while replacing the qstring with something that doesn't contain special characters (e.g.
'Mainz-Bingen') works fine.

As noted above the following layer definition in a mapfile works fine

LAYER
    NAME kreis
    STATUS DEFAULT
    TYPE polygon
    DATA "/tmp/subset"
    TEMPLATE "kreis.html"
    CLASSITEM KREIS_NAME
    CLASS
      NAME Boundary
      COLOR 128 128 0
      OUTLINECOLOR 0 0 0
      EXPRESSION /Südliche Weinstraße/
    END
END


but this does not:

layer.setClassitem("KREIS_NAME");
classObj cl = new classObj(layer);
cl.setName("Classname");
cl.setExpression("/Südliche Weinstraße/");

I use Mapserver 4.8.1 on W2k, Tomcat 5.0.28.

I can provide some sample data, just in case someone likes to reproduce.

Any help is appreciated.

best regards
Oliver

Hi Oliver,

only a guess but there seems to a difference in the string encoding between the mapserver lib in the system and java. Try to convert the String before you set the expression in your code. (-> String( byte bytes[], String ) throws UnsupportedEncodingException)

Please let me if this helps or how you solved it.

Regards,

Norbert

Reply via email to